{"version":3,"file":"cronos-so-cronos.cjs","sources":["../src/account/authority.ts","../src/account/config.ts","../src/account/daemon.ts","../src/account/health.ts","../src/account/fee.ts","../src/account/task.ts","../src/account/treasury.ts","../src/account/index.ts","../src/instruction/configUpdateAdmin.ts","../src/instruction/configUpdateProgramFee.ts","../src/instruction/configUpdateWorkerFee.ts","../src/instruction/daemonCreate.ts","../src/instruction/utils.ts","../src/instruction/daemonInvoke.ts","../src/instruction/initialize.ts","../src/instruction/feeCollect.ts","../src/instruction/taskCreate.ts","../src/instruction/taskExecute.ts","../src/instruction/index.ts","../src/idl.ts","../src/index.ts"],"sourcesContent":["import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_AUTHORITY = Buffer.from(\"authority\");\n\nexport class AuthorityGateway extends Gateway<Cronos, Cronos[\"accounts\"][0]> {\n  public async pda() {\n    return await findPDA([SEED_AUTHORITY], this.program.programId);\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_CONFIG = Buffer.from(\"config\");\n\nexport class ConfigGateway extends Gateway<Cronos, Cronos[\"accounts\"][1]> {\n  public async pda() {\n    return await findPDA([SEED_CONFIG], this.program.programId);\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_DAEMON = Buffer.from(\"daemon\");\n\nexport class DaemonGateway extends Gateway<Cronos, Cronos[\"accounts\"][2]> {\n  public async pda(owner: PublicKey) {\n    return await findPDA(\n      [SEED_DAEMON, owner.toBuffer()],\n      this.program.programId\n    );\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_HEALTH = Buffer.from(\"health\");\n\nexport class HealthGateway extends Gateway<Cronos, Cronos[\"accounts\"][4]> {\n  public async pda() {\n    return await findPDA([SEED_HEALTH], this.program.programId);\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_FEE = Buffer.from(\"fee\");\n\nexport class FeeGateway extends Gateway<Cronos, Cronos[\"accounts\"][3]> {\n  public async pda(daemon: PublicKey) {\n    return await findPDA([SEED_FEE, daemon.toBuffer()], this.program.programId);\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { BN } from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_TASK = Buffer.from(\"task\");\n\nexport class TaskGateway extends Gateway<Cronos, Cronos[\"accounts\"][5]> {\n  public async pda(daemon: PublicKey, id: BN) {\n    return await findPDA(\n      [SEED_TASK, daemon.toBuffer(), id.toArrayLike(Buffer, \"be\", 16)],\n      this.program.programId\n    );\n  }\n}\n","import { Gateway, findPDA } from \"@cronos-so/utils\";\nimport { Cronos } from \"../idl\";\n\nconst SEED_TREASURY = Buffer.from(\"treasury\");\n\nexport class TreasuryGateway extends Gateway<Cronos, Cronos[\"accounts\"][6]> {\n  public async pda() {\n    return await findPDA([SEED_TREASURY], this.program.programId);\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport { Cronos } from \"../idl\";\n\nimport { AuthorityGateway } from \"./authority\";\nimport { ConfigGateway } from \"./config\";\nimport { DaemonGateway } from \"./daemon\";\nimport { HealthGateway } from \"./health\";\nimport { FeeGateway } from \"./fee\";\nimport { TaskGateway } from \"./task\";\nimport { TreasuryGateway } from \"./treasury\";\n\nexport class Account {\n  public authority: AuthorityGateway;\n  public config: ConfigGateway;\n  public daemon: DaemonGateway;\n  public health: HealthGateway;\n  public fee: FeeGateway;\n  public task: TaskGateway;\n  public treasury: TreasuryGateway;\n\n  constructor(cronos: Program<Cronos>) {\n    this.authority = new AuthorityGateway(cronos, cronos.account.authority);\n    this.config = new ConfigGateway(cronos, cronos.account.config);\n    this.daemon = new DaemonGateway(cronos, cronos.account.daemon);\n    this.health = new HealthGateway(cronos, cronos.account.health);\n    this.fee = new FeeGateway(cronos, cronos.account.fee);\n    this.task = new TaskGateway(cronos, cronos.account.task);\n    this.treasury = new TreasuryGateway(cronos, cronos.account.treasury);\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport { PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type ConfigUpdateAdminArgs = {\n  newAdmin: PublicKey;\n};\n\nexport class ConfigUpdateAdmin {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async configUpdateAdmin({\n    newAdmin,\n  }: ConfigUpdateAdminArgs): Promise<TransactionInstruction> {\n    const configPDA = await this.account.config.pda();\n    const configData = await this.account.config.data(configPDA.address);\n    return this.cronos.instruction.configUpdateAdmin(newAdmin, {\n      accounts: {\n        admin: configData.admin,\n        config: configPDA.address,\n      },\n    });\n  }\n}\n","import { BN, Program } from \"@project-serum/anchor\";\nimport { TransactionInstruction } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type ConfigUpdateProgramFeeArgs = {\n  newProgramFee: BN;\n};\n\nexport class ConfigUpdateProgramFee {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async configUpdateProgramFee({\n    newProgramFee,\n  }: ConfigUpdateProgramFeeArgs): Promise<TransactionInstruction> {\n    const configPDA = await this.account.config.pda();\n    const configData = await this.account.config.data(configPDA.address);\n    return this.cronos.instruction.configUpdateProgramFee(newProgramFee, {\n      accounts: {\n        admin: configData.admin,\n        config: configPDA.address,\n      },\n    });\n  }\n}\n","import { BN, Program } from \"@project-serum/anchor\";\nimport { TransactionInstruction } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type ConfigUpdateWorkerFeeArgs = {\n  newWorkerFee: BN;\n};\n\nexport class ConfigUpdateWorkerFee {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async configUpdateWorkerFee({\n    newWorkerFee,\n  }: ConfigUpdateWorkerFeeArgs): Promise<TransactionInstruction> {\n    const configPDA = await this.account.config.pda();\n    const configData = await this.account.config.data(configPDA.address);\n    return this.cronos.instruction.configUpdateWorkerFee(newWorkerFee, {\n      accounts: {\n        admin: configData.admin,\n        config: configPDA.address,\n      },\n    });\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport {\n  PublicKey,\n  SystemProgram,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type DaemonCreateArgs = {\n  owner: PublicKey;\n};\n\nexport class DaemonCreate {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async daemonCreate({\n    owner,\n  }: DaemonCreateArgs): Promise<TransactionInstruction> {\n    const daemonPDA = await this.account.daemon.pda(owner);\n    const feePDA = await this.account.fee.pda(daemonPDA.address);\n    return this.cronos.instruction.daemonCreate(daemonPDA.bump, feePDA.bump, {\n      accounts: {\n        daemon: daemonPDA.address,\n        fee: feePDA.address,\n        owner: owner,\n        systemProgram: SystemProgram.programId,\n      },\n    });\n  }\n}\n","import { PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { AccountMetaData, InstructionData } from \"src\";\n\nexport function buildInstructionData(\n  ix: TransactionInstruction\n): InstructionData {\n  return {\n    programId: ix.programId,\n    accounts: ix.keys as Array<AccountMetaData>,\n    data: ix.data,\n  };\n}\n\nexport function buildRemainingAccounts(\n  ixData: InstructionData,\n  daemon: PublicKey\n): Array<AccountMetaData> {\n  return (ixData.accounts as Array<AccountMetaData>)\n    .map((acc) => ({\n      pubkey: acc.pubkey,\n      isSigner:\n        acc.pubkey.toString() === daemon.toString() ? false : acc.isSigner,\n      isWritable: acc.isWritable,\n    }))\n    .concat([\n      {\n        pubkey: ixData.programId,\n        isSigner: false,\n        isWritable: false,\n      },\n    ]);\n}\n","import { Program } from \"@project-serum/anchor\";\nimport { PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { buildInstructionData, buildRemainingAccounts } from \"./utils\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type DaemonInvokeArgs = {\n  daemon: PublicKey;\n  ix: TransactionInstruction;\n};\n\nexport class DaemonInvoke {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async daemonInvoke({\n    daemon,\n    ix,\n  }: DaemonInvokeArgs): Promise<TransactionInstruction> {\n    const daemonData = await this.account.daemon.data(daemon);\n    const instructionData = buildInstructionData(ix);\n    return this.cronos.instruction.daemonInvoke(instructionData, {\n      accounts: {\n        daemon: daemon,\n        owner: daemonData.owner,\n      },\n      remainingAccounts: buildRemainingAccounts(instructionData, daemon),\n    });\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport {\n  PublicKey,\n  SystemProgram,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type InitializeArgs = {\n  signer: PublicKey;\n};\n\nexport class Initialize {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async initialize({\n    signer,\n  }: InitializeArgs): Promise<TransactionInstruction> {\n    const authorityPDA = await this.account.authority.pda();\n    const configPDA = await this.account.config.pda();\n    const daemonPDA = await this.account.daemon.pda(authorityPDA.address);\n    const feePDA = await this.account.fee.pda(daemonPDA.address);\n    const healthPDA = await this.account.health.pda();\n    const treasuryPDA = await this.account.treasury.pda();\n    return this.cronos.instruction.initialize(\n      authorityPDA.bump,\n      configPDA.bump,\n      daemonPDA.bump,\n      feePDA.bump,\n      healthPDA.bump,\n      treasuryPDA.bump,\n      {\n        accounts: {\n          authority: authorityPDA.address,\n          config: configPDA.address,\n          daemon: daemonPDA.address,\n          fee: feePDA.address,\n          health: healthPDA.address,\n          signer: signer,\n          systemProgram: SystemProgram.programId,\n          treasury: treasuryPDA.address,\n        },\n      }\n    );\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport { PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type FeeCollectArgs = {\n  fee: PublicKey;\n  signer: PublicKey;\n};\n\nexport class FeeCollect {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async feeCollect({\n    fee,\n    signer,\n  }: FeeCollectArgs): Promise<TransactionInstruction> {\n    const treasuryPDA = await this.account.treasury.pda();\n    return this.cronos.instruction.feeCollect({\n      accounts: {\n        fee: fee,\n        signer: signer,\n        treasury: treasuryPDA.address,\n      },\n    });\n  }\n}\n","import { BN, Program } from \"@project-serum/anchor\";\nimport {\n  PublicKey,\n  SystemProgram,\n  SYSVAR_CLOCK_PUBKEY,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { buildInstructionData } from \"./utils\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type TaskCreateArgs = {\n  daemon: PublicKey;\n  ix: TransactionInstruction;\n  execAt: BN;\n  stopAt: BN;\n  recurr: BN;\n};\n\nexport class TaskCreate {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async taskCreate({\n    daemon,\n    ix,\n    execAt,\n    stopAt,\n    recurr,\n  }: TaskCreateArgs): Promise<TransactionInstruction> {\n    const configPDA = await this.account.config.pda();\n    const daemonData = await this.account.daemon.data(daemon);\n    const taskPDA = await this.account.task.pda(daemon, daemonData.taskCount);\n    const instructionData = buildInstructionData(ix);\n    return this.cronos.instruction.taskCreate(\n      instructionData,\n      execAt,\n      stopAt,\n      recurr,\n      taskPDA.bump,\n      {\n        accounts: {\n          clock: SYSVAR_CLOCK_PUBKEY,\n          config: configPDA.address,\n          daemon: daemon,\n          task: taskPDA.address,\n          owner: daemonData.owner,\n          systemProgram: SystemProgram.programId,\n        },\n      }\n    );\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport {\n  PublicKey,\n  SYSVAR_CLOCK_PUBKEY,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\nimport { buildRemainingAccounts } from \"./utils\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nexport type TaskExecuteArgs = {\n  task: PublicKey;\n  worker: PublicKey;\n};\n\nexport class TaskExecute {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n  }\n\n  public async taskExecute({\n    task,\n    worker,\n  }: TaskExecuteArgs): Promise<TransactionInstruction> {\n    const configPDA = await this.account.config.pda();\n    const taskData = await this.account.task.data(task);\n    const feePDA = await this.account.fee.pda(taskData.daemon);\n    return this.cronos.instruction.taskExecute({\n      accounts: {\n        clock: SYSVAR_CLOCK_PUBKEY,\n        config: configPDA.address,\n        daemon: taskData.daemon,\n        fee: feePDA.address,\n        task: task,\n        worker: worker,\n      },\n      remainingAccounts: buildRemainingAccounts(taskData.ix, taskData.daemon),\n    });\n  }\n}\n","import { Program } from \"@project-serum/anchor\";\nimport { TransactionInstruction } from \"@solana/web3.js\";\nimport { Cronos } from \"../idl\";\nimport { Account } from \"../account\";\n\nimport { ConfigUpdateAdmin, ConfigUpdateAdminArgs } from \"./configUpdateAdmin\";\nimport {\n  ConfigUpdateProgramFee,\n  ConfigUpdateProgramFeeArgs,\n} from \"./configUpdateProgramFee\";\nimport {\n  ConfigUpdateWorkerFee,\n  ConfigUpdateWorkerFeeArgs,\n} from \"./configUpdateWorkerFee\";\nimport { DaemonCreate, DaemonCreateArgs } from \"./daemonCreate\";\nimport { DaemonInvoke, DaemonInvokeArgs } from \"./daemonInvoke\";\nimport { Initialize, InitializeArgs } from \"./initialize\";\nimport { FeeCollect, FeeCollectArgs } from \"./feeCollect\";\nimport { TaskCreate, TaskCreateArgs } from \"./taskCreate\";\nimport { TaskExecute, TaskExecuteArgs } from \"./taskExecute\";\n\nexport class Instruction {\n  private account: Account;\n  private cronos: Program<Cronos>;\n\n  public configUpdateAdmin: (\n    args: ConfigUpdateAdminArgs\n  ) => Promise<TransactionInstruction>;\n\n  public configUpdateProgramFee: (\n    args: ConfigUpdateProgramFeeArgs\n  ) => Promise<TransactionInstruction>;\n\n  public configUpdateWorkerFee: (\n    args: ConfigUpdateWorkerFeeArgs\n  ) => Promise<TransactionInstruction>;\n\n  public daemonCreate: (\n    args: DaemonCreateArgs\n  ) => Promise<TransactionInstruction>;\n\n  public daemonInvoke: (\n    args: DaemonInvokeArgs\n  ) => Promise<TransactionInstruction>;\n\n  public feeCollect: (args: FeeCollectArgs) => Promise<TransactionInstruction>;\n\n  public taskCreate: (args: TaskCreateArgs) => Promise<TransactionInstruction>;\n\n  public taskExecute: (\n    args: TaskExecuteArgs\n  ) => Promise<TransactionInstruction>;\n\n  public initialize: (args: InitializeArgs) => Promise<TransactionInstruction>;\n\n  constructor(account: Account, cronos: Program<Cronos>) {\n    this.account = account;\n    this.cronos = cronos;\n\n    this.configUpdateAdmin = new ConfigUpdateAdmin(\n      this.account,\n      this.cronos\n    ).configUpdateAdmin;\n\n    this.configUpdateProgramFee = new ConfigUpdateProgramFee(\n      this.account,\n      this.cronos\n    ).configUpdateProgramFee;\n\n    this.configUpdateWorkerFee = new ConfigUpdateWorkerFee(\n      this.account,\n      this.cronos\n    ).configUpdateWorkerFee;\n\n    this.daemonCreate = new DaemonCreate(\n      this.account,\n      this.cronos\n    ).daemonCreate;\n\n    this.daemonInvoke = new DaemonInvoke(\n      this.account,\n      this.cronos\n    ).daemonInvoke;\n\n    this.initialize = new Initialize(this.account, this.cronos).initialize;\n\n    this.feeCollect = new FeeCollect(this.account, this.cronos).feeCollect;\n\n    this.taskCreate = new TaskCreate(this.account, this.cronos).taskCreate;\n\n    this.taskExecute = new TaskExecute(this.account, this.cronos).taskExecute;\n  }\n}\n","export type Cronos = {\n  \"version\": \"0.0.16\",\n  \"name\": \"cronos\",\n  \"instructions\": [\n    {\n      \"name\": \"adminCancelTask\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"adminCreateTask\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"ix\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        },\n        {\n          \"name\": \"execAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"stopAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"recurr\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"bump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"adminResetHealth\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"configUpdateAdmin\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newAdmin\",\n          \"type\": \"publicKey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"configUpdateProgramFee\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newProgramFee\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"configUpdateWorkerFee\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newWorkerFee\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"daemonCreate\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"daemonBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"feeBump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"daemonInvoke\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"instructionData\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"feeCollect\",\n      \"accounts\": [\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"signer\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"treasury\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize\",\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"signer\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"treasury\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"authorityBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"configBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"daemonBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"feeBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"healthBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"treasuryBump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"healthCheck\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"taskCancel\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"taskCreate\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"ix\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        },\n        {\n          \"name\": \"execAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"stopAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"recurr\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"bump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"taskExecute\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"worker\",\n          \"isMut\": true,\n          \"isSigner\": true\n        }\n      ],\n      \"args\": []\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"authority\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"config\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"admin\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"minRecurr\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"programFee\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"workerFee\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"daemon\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"taskCount\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"fee\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"daemon\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"health\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"realTime\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"targetTime\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"daemon\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"id\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"ix\",\n            \"type\": {\n              \"defined\": \"InstructionData\"\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": \"TaskStatus\"\n            }\n          },\n          {\n            \"name\": \"execAt\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"stopAt\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"recurr\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"treasury\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"InstructionData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"programId\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"accounts\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": \"AccountMetaData\"\n              }\n            }\n          },\n          {\n            \"name\": \"data\",\n            \"type\": \"bytes\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AccountMetaData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"isSigner\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"isWritable\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TaskStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Cancelled\"\n          },\n          {\n            \"name\": \"Executed\"\n          },\n          {\n            \"name\": \"Pending\"\n          }\n        ]\n      }\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"InvalidChronology\",\n      \"msg\": \"Tasks cannot be started before they are stopped\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"InvalidExecAtStale\",\n      \"msg\": \"Tasks cannot be scheduled for execution in the past\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"InvalidRecurrNegative\",\n      \"msg\": \"Recurrence interval cannot be negative\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"InvalidRecurrBelowMin\",\n      \"msg\": \"Recurrence interval is below the minimum supported time granulartiy\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"InvalidSignatory\",\n      \"msg\": \"Your daemon cannot provide all required signatures for this instruction\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"TaskNotPending\",\n      \"msg\": \"Task is not pending and may not executed\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"TaskNotDue\",\n      \"msg\": \"This task is not due and may not be executed yet\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"Unknown\",\n      \"msg\": \"Unknown error\"\n    }\n  ]\n};\n\nexport const IDL: Cronos = {\n  \"version\": \"0.0.16\",\n  \"name\": \"cronos\",\n  \"instructions\": [\n    {\n      \"name\": \"adminCancelTask\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"adminCreateTask\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"ix\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        },\n        {\n          \"name\": \"execAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"stopAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"recurr\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"bump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"adminResetHealth\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"configUpdateAdmin\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newAdmin\",\n          \"type\": \"publicKey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"configUpdateProgramFee\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newProgramFee\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"configUpdateWorkerFee\",\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"newWorkerFee\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"daemonCreate\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"daemonBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"feeBump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"daemonInvoke\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"instructionData\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"feeCollect\",\n      \"accounts\": [\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"signer\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"treasury\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize\",\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"signer\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"treasury\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"authorityBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"configBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"daemonBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"feeBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"healthBump\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"treasuryBump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"healthCheck\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"authority\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"health\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"taskCancel\",\n      \"accounts\": [\n        {\n          \"name\": \"daemon\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"taskCreate\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"owner\",\n          \"isMut\": true,\n          \"isSigner\": true\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"systemProgram\",\n          \"isMut\": false,\n          \"isSigner\": false\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"ix\",\n          \"type\": {\n            \"defined\": \"InstructionData\"\n          }\n        },\n        {\n          \"name\": \"execAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"stopAt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"recurr\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"bump\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"taskExecute\",\n      \"accounts\": [\n        {\n          \"name\": \"clock\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"config\",\n          \"isMut\": false,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"daemon\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"fee\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"task\",\n          \"isMut\": true,\n          \"isSigner\": false\n        },\n        {\n          \"name\": \"worker\",\n          \"isMut\": true,\n          \"isSigner\": true\n        }\n      ],\n      \"args\": []\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"authority\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"config\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"admin\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"minRecurr\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"programFee\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"workerFee\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"daemon\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"taskCount\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"fee\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"daemon\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"health\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"realTime\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"targetTime\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"task\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"daemon\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"id\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"ix\",\n            \"type\": {\n              \"defined\": \"InstructionData\"\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": \"TaskStatus\"\n            }\n          },\n          {\n            \"name\": \"execAt\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"stopAt\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"recurr\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"treasury\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"InstructionData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"programId\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"accounts\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": \"AccountMetaData\"\n              }\n            }\n          },\n          {\n            \"name\": \"data\",\n            \"type\": \"bytes\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AccountMetaData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"type\": \"publicKey\"\n          },\n          {\n            \"name\": \"isSigner\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"isWritable\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TaskStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Cancelled\"\n          },\n          {\n            \"name\": \"Executed\"\n          },\n          {\n            \"name\": \"Pending\"\n          }\n        ]\n      }\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"InvalidChronology\",\n      \"msg\": \"Tasks cannot be started before they are stopped\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"InvalidExecAtStale\",\n      \"msg\": \"Tasks cannot be scheduled for execution in the past\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"InvalidRecurrNegative\",\n      \"msg\": \"Recurrence interval cannot be negative\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"InvalidRecurrBelowMin\",\n      \"msg\": \"Recurrence interval is below the minimum supported time granulartiy\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"InvalidSignatory\",\n      \"msg\": \"Your daemon cannot provide all required signatures for this instruction\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"TaskNotPending\",\n      \"msg\": \"Task is not pending and may not executed\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"TaskNotDue\",\n      \"msg\": \"This task is not due and may not be executed yet\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"Unknown\",\n      \"msg\": \"Unknown error\"\n    }\n  ]\n};\n","import { now } from \"@cronos-so/utils\";\nimport { Program, Provider } from \"@project-serum/anchor\";\nimport { Account } from \"./account\";\nimport { Instruction } from \"./instruction\";\nimport { IDL, Cronos as _Cronos } from \"./idl\";\n\nexport class Cronos {\n  static DEVNET_PROGRAM_ID = \"5F5bYKuGwR5xrXr6mCo5wi6zAiSebSM2jzeDA8dwTF6A\";\n  static MAINNET_PROGRAM_ID = \"\";\n\n  public account: Account;\n  public instruction: Instruction;\n  public programId: string;\n\n  constructor(provider: Provider, programId: string) {\n    const cronos = new Program(IDL, programId, provider);\n    const account = new Account(cronos);\n    const instruction = new Instruction(account, cronos);\n    this.account = account;\n    this.instruction = instruction;\n    this.programId = programId;\n  }\n}\n\nexport * from \"./types\";\nexport { now };\n"],"names":["SEED_AUTHORITY","Buffer","from","AuthorityGateway","pda","findPDA","this","program","programId","Gateway","SEED_CONFIG","ConfigGateway","SEED_DAEMON","DaemonGateway","owner","toBuffer","SEED_HEALTH","HealthGateway","SEED_FEE","FeeGateway","daemon","SEED_TASK","TaskGateway","id","toArrayLike","SEED_TREASURY","TreasuryGateway","Account","cronos","authority","config","health","fee","task","treasury","account","ConfigUpdateAdmin","configUpdateAdmin","newAdmin","_this2","configPDA","data","address","configData","instruction","accounts","admin","ConfigUpdateProgramFee","configUpdateProgramFee","newProgramFee","ConfigUpdateWorkerFee","configUpdateWorkerFee","newWorkerFee","DaemonCreate","daemonCreate","daemonPDA","feePDA","bump","systemProgram","SystemProgram","buildInstructionData","ix","keys","buildRemainingAccounts","ixData","map","acc","pubkey","isSigner","toString","isWritable","concat","DaemonInvoke","daemonInvoke","daemonData","instructionData","remainingAccounts","Initialize","initialize","signer","authorityPDA","healthPDA","treasuryPDA","FeeCollect","feeCollect","TaskCreate","taskCreate","execAt","stopAt","recurr","taskCount","taskPDA","clock","SYSVAR_CLOCK_PUBKEY","TaskExecute","taskExecute","worker","taskData","Instruction","IDL","version","name","instructions","isMut","args","type","defined","kind","fields","types","vec","variants","errors","code","msg","Cronos","provider","Program","DEVNET_PROGRAM_ID","MAINNET_PROGRAM_ID"],"mappings":"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"}