{ "version": "0.1.0", "name": "spl_binary_oracle_pair", "instructions": [ { "name": "initPool", "accounts": [ { "name": "pool", "isMut": true, "isSigner": false }, { "name": "authority", "isMut": false, "isSigner": false }, { "name": "decider", "isMut": false, "isSigner": false }, { "name": "depositTokenMint", "isMut": false, "isSigner": false }, { "name": "depositAccount", "isMut": true, "isSigner": false }, { "name": "tokenPassMint", "isMut": true, "isSigner": false }, { "name": "tokenFailMint", "isMut": true, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "mintEndSlot", "type": "u64" }, { "name": "decideEndSlot", "type": "u64" }, { "name": "bumpSeed", "type": "u8" } ] }, { "name": "deposit", "accounts": [ { "name": "pool", "isMut": false, "isSigner": false }, { "name": "authority", "isMut": false, "isSigner": false }, { "name": "userTransferAuthority", "isMut": false, "isSigner": true }, { "name": "userTokenAccount", "isMut": true, "isSigner": false }, { "name": "poolDepositTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenPassMint", "isMut": true, "isSigner": false }, { "name": "tokenFailMint", "isMut": true, "isSigner": false }, { "name": "tokenPassDestinationAccount", "isMut": true, "isSigner": false }, { "name": "tokenFailDestinationAccount", "isMut": true, "isSigner": false }, { "name": "clock", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "arg", "type": "u64" } ] }, { "name": "withdraw", "accounts": [ { "name": "pool", "isMut": false, "isSigner": false }, { "name": "authority", "isMut": false, "isSigner": false }, { "name": "userTransferAuthority", "isMut": false, "isSigner": true }, { "name": "poolDepositTokenAccount", "isMut": true, "isSigner": false }, { "name": "tokenPassUserAccount", "isMut": true, "isSigner": false }, { "name": "tokenFailUserAccount", "isMut": true, "isSigner": false }, { "name": "tokenPassMint", "isMut": true, "isSigner": false }, { "name": "tokenFailMint", "isMut": true, "isSigner": false }, { "name": "userTokenDestinationAccount", "isMut": true, "isSigner": false }, { "name": "clock", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "arg", "type": "u64" } ] }, { "name": "decide", "accounts": [ { "name": "pool", "isMut": true, "isSigner": false }, { "name": "decider", "isMut": false, "isSigner": true }, { "name": "clock", "isMut": false, "isSigner": false } ], "args": [ { "name": "arg", "type": "bool" } ] } ], "accounts": [ { "name": "Pool", "type": { "kind": "struct", "fields": [ { "name": "version", "type": "u8" }, { "name": "bumpSeed", "type": "u8" }, { "name": "tokenProgramId", "type": "publicKey" }, { "name": "depositAccount", "type": "publicKey" }, { "name": "tokenPassMint", "type": "publicKey" }, { "name": "tokenFailMint", "type": "publicKey" }, { "name": "decider", "type": "publicKey" }, { "name": "mintEndSlot", "type": "u64" }, { "name": "decideEndSlot", "type": "u64" }, { "name": "decision", "type": { "defined": "Decision" } } ] } } ], "types": [ { "name": "Decision", "type": { "kind": "enum", "variants": [ { "name": "Undecided" }, { "name": "Pass" }, { "name": "Fail" } ] } } ], "errors": [ { "code": 0, "name": "AlreadyInUse", "msg": "Pool account already in use" }, { "code": 1, "name": "DepositAccountInUse", "msg": "Deposit account already in use" }, { "code": 2, "name": "TokenMintInUse", "msg": "Token account already in use" }, { "code": 3, "name": "InvalidAuthorityData", "msg": "Failed to generate program account because of invalid data" }, { "code": 4, "name": "InvalidAuthorityAccount", "msg": "Invalid authority account provided" }, { "code": 5, "name": "NotRentExempt", "msg": "Lamport balance below rent-exempt threshold" }, { "code": 6, "name": "InvalidTokenMint", "msg": "Input token mint account is not valid" }, { "code": 7, "name": "InvalidAmount", "msg": "Amount should be more than zero" }, { "code": 8, "name": "WrongDeciderAccount", "msg": "Wrong decider account was sent" }, { "code": 9, "name": "SignatureMissing", "msg": "Signature missing in transaction" }, { "code": 10, "name": "DecisionAlreadyMade", "msg": "Decision was already made for this pool" }, { "code": 11, "name": "InvalidSlotForDecision", "msg": "Decision can't be made in current slot" }, { "code": 12, "name": "InvalidSlotForDeposit", "msg": "Deposit can't be made in current slot" }, { "code": 13, "name": "NoDecisionMadeYet", "msg": "No decision has been made yet" } ] }