{"path":"lib/sdk/src/idl.ts","size":3360,"locked":false,"binary":false,"truncated":false,"content":"export const IDL = {\n  version: \"0.1.0\",\n  name: \"project_mappers\",\n  instructions: [\n    {\n      name: \"initializeJob\",\n      accounts: [\n        { name: \"client\",        isMut: true,  isSigner: true  },\n        { name: \"freelancer\",    isMut: false, isSigner: false },\n        { name: \"oracle\",        isMut: false, isSigner: false },\n        { name: \"escrowAccount\", isMut: true,  isSigner: false },\n        { name: \"vaultAccount\",  isMut: true,  isSigner: false },\n        { name: \"systemProgram\", isMut: false, isSigner: false },\n      ],\n      args: [\n        { name: \"jobId\",  type: \"string\" },\n        { name: \"amount\", type: \"u64\"    },\n      ],\n    },\n    {\n      name: \"releasePayment\",\n      accounts: [\n        { name: \"authority\",     isMut: false, isSigner: true  },\n        { name: \"freelancer\",    isMut: true,  isSigner: false },\n        { name: \"client\",        isMut: true,  isSigner: false },\n        { name: \"escrowAccount\", isMut: true,  isSigner: false },\n        { name: \"vaultAccount\",  isMut: true,  isSigner: false },\n        { name: \"systemProgram\", isMut: false, isSigner: false },\n      ],\n      args: [],\n    },\n    {\n      name: \"cancelJob\",\n      accounts: [\n        { name: \"oracle\",        isMut: false, isSigner: true  },\n        { name: \"client\",        isMut: true,  isSigner: false },\n        { name: \"escrowAccount\", isMut: true,  isSigner: false },\n        { name: \"vaultAccount\",  isMut: true,  isSigner: false },\n        { name: \"systemProgram\", isMut: false, isSigner: false },\n      ],\n      args: [],\n    },\n  ],\n  accounts: [\n    {\n      name: \"GigEscrow\",\n      type: {\n        kind: \"struct\",\n        fields: [\n          { name: \"client\",      type: \"publicKey\"              },\n          { name: \"freelancer\",  type: \"publicKey\"              },\n          { name: \"oracle\",      type: \"publicKey\"              },\n          { name: \"amount\",      type: \"u64\"                    },\n          { name: \"jobId\",       type: \"string\"                 },\n          { name: \"status\",      type: { defined: \"JobStatus\" } },\n          { name: \"escrowBump\",  type: \"u8\"                     },\n          { name: \"vaultBump\",   type: \"u8\"                     },\n        ],\n      },\n    },\n  ],\n  types: [\n    {\n      name: \"JobStatus\",\n      type: {\n        kind: \"enum\",\n        variants: [\n          { name: \"Pending\"   },\n          { name: \"Completed\" },\n          { name: \"Cancelled\" },\n        ],\n      },\n    },\n  ],\n  errors: [\n    { code: 6000, name: \"JobIdTooLong\",           msg: \"Job ID exceeds the 32-character maximum.\"        },\n    { code: 6001, name: \"InvalidAmount\",           msg: \"Amount must be greater than zero.\"               },\n    { code: 6002, name: \"AmountBelowRentExemption\",msg: \"Amount is below the rent-exempt minimum.\"        },\n    { code: 6003, name: \"JobNotPending\",           msg: \"Job is not in a Pending state.\"                  },\n    { code: 6004, name: \"UnauthorizedExecution\",   msg: \"Signer is neither the client nor the oracle.\"    },\n    { code: 6005, name: \"InvalidFreelancerTarget\", msg: \"Target does not match the assigned freelancer.\"  },\n    { code: 6006, name: \"InvalidOracleAuthority\",  msg: \"Only the oracle can authorize cancellation.\"     },\n    { code: 6007, name: \"InvalidClientAuthority\",  msg: \"Refund target does not match the original client.\" },\n  ],\n} as const;\n"}