{"path":"idl.json","size":6951,"locked":false,"binary":false,"truncated":false,"content":"{\n  \"address\": \"52yt1gCbPeiKP4JYjUVKmMJSgBMMcUx8xRGqozMKX2Mu\",\n  \"metadata\": {\n    \"name\": \"project_mappers\",\n    \"version\": \"0.2.0\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Mappers Protocol — autonomous freelance escrow on Solana\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"initialize_job\",\n      \"discriminator\": [137, 22, 138, 41, 76, 208, 114, 50],\n      \"accounts\": [\n        { \"name\": \"client\", \"writable\": true, \"signer\": true },\n        { \"name\": \"freelancer\" },\n        { \"name\": \"oracle\" },\n        {\n          \"name\": \"escrow_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [103, 105, 103, 45, 101, 115, 99, 114, 111, 119] },\n              { \"kind\": \"account\", \"path\": \"client\" },\n              { \"kind\": \"arg\", \"path\": \"job_id\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"vault_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [118, 97, 117, 108, 116] },\n              { \"kind\": \"account\", \"path\": \"client\" },\n              { \"kind\": \"arg\", \"path\": \"job_id\" }\n            ]\n          }\n        },\n        { \"name\": \"system_program\", \"address\": \"11111111111111111111111111111111\" }\n      ],\n      \"args\": [\n        { \"name\": \"job_id\", \"type\": \"string\" },\n        { \"name\": \"amount\", \"type\": \"u64\" },\n        { \"name\": \"duration_seconds\", \"type\": \"i64\" }\n      ]\n    },\n    {\n      \"name\": \"release_payment\",\n      \"discriminator\": [24, 34, 191, 86, 145, 160, 183, 233],\n      \"accounts\": [\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"freelancer\", \"writable\": true },\n        { \"name\": \"client\", \"writable\": true },\n        {\n          \"name\": \"escrow_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [103, 105, 103, 45, 101, 115, 99, 114, 111, 119] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"vault_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [118, 97, 117, 108, 116] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        { \"name\": \"system_program\", \"address\": \"11111111111111111111111111111111\" }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"cancel_job\",\n      \"discriminator\": [126, 241, 155, 241, 50, 236, 83, 118],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"signer\": true },\n        { \"name\": \"client\", \"writable\": true },\n        {\n          \"name\": \"escrow_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [103, 105, 103, 45, 101, 115, 99, 114, 111, 119] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"vault_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [118, 97, 117, 108, 116] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        { \"name\": \"system_program\", \"address\": \"11111111111111111111111111111111\" }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"refund_after_timeout\",\n      \"discriminator\": [213, 61, 128, 68, 149, 201, 53, 130],\n      \"accounts\": [\n        { \"name\": \"payer\", \"signer\": true },\n        { \"name\": \"client\", \"writable\": true },\n        {\n          \"name\": \"escrow_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [103, 105, 103, 45, 101, 115, 99, 114, 111, 119] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"vault_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [118, 97, 117, 108, 116] },\n              { \"kind\": \"account\", \"path\": \"escrow_account.client\" },\n              { \"kind\": \"account\", \"path\": \"escrow_account.job_id\" }\n            ]\n          }\n        },\n        { \"name\": \"system_program\", \"address\": \"11111111111111111111111111111111\" }\n      ],\n      \"args\": []\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"GigEscrow\",\n      \"discriminator\": [28, 152, 50, 155, 169, 194, 206, 20]\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"GigEscrow\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"client\", \"type\": \"pubkey\" },\n          { \"name\": \"freelancer\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"amount\", \"type\": \"u64\" },\n          { \"name\": \"job_id\", \"type\": \"string\" },\n          { \"name\": \"status\", \"type\": { \"defined\": { \"name\": \"JobStatus\" } } },\n          { \"name\": \"escrow_bump\", \"type\": \"u8\" },\n          { \"name\": \"vault_bump\", \"type\": \"u8\" },\n          { \"name\": \"deadline\", \"type\": \"i64\" }\n        ]\n      }\n    },\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\": \"Funding amount must be greater than zero lamports.\" },\n    { \"code\": 6002, \"name\": \"AmountBelowRentExemption\", \"msg\": \"Amount is below the vault 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 escrow client nor the designated oracle.\" },\n    { \"code\": 6005, \"name\": \"InvalidFreelancerTarget\", \"msg\": \"Target account does not match the assigned freelancer.\" },\n    { \"code\": 6006, \"name\": \"InvalidOracleAuthority\", \"msg\": \"Only the designated oracle can authorize cancellation.\" },\n    { \"code\": 6007, \"name\": \"InvalidClientAuthority\", \"msg\": \"Refund target does not match the original client.\" },\n    { \"code\": 6008, \"name\": \"DeadlineNotReached\", \"msg\": \"The settlement deadline has not been reached yet.\" },\n    { \"code\": 6009, \"name\": \"InvalidDuration\", \"msg\": \"Duration must be between 1 hour and 180 days.\" },\n    { \"code\": 6010, \"name\": \"DurationOverflow\", \"msg\": \"Deadline calculation overflowed the i64 range.\" }\n  ]\n}\n"}