{ "version": "0.1.0", "name": "spl_binary_option", "instructions": [ { "name": "initializeBinaryOption", "accounts": [ { "name": "poolAccount", "isMut": true, "isSigner": true }, { "name": "escrowMint", "isMut": false, "isSigner": false }, { "name": "escrowAccount", "isMut": true, "isSigner": true }, { "name": "longTokenMint", "isMut": true, "isSigner": true }, { "name": "shortTokenMint", "isMut": true, "isSigner": true }, { "name": "mintAuthority", "isMut": false, "isSigner": true }, { "name": "updateAuthority", "isMut": false, "isSigner": true }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "rent", "isMut": false, "isSigner": false } ], "args": [ { "name": "decimals", "type": "u8" } ] }, { "name": "trade", "accounts": [ { "name": "poolAccount", "isMut": true, "isSigner": false }, { "name": "escrowAccount", "isMut": true, "isSigner": false }, { "name": "longTokenMint", "isMut": true, "isSigner": false }, { "name": "shortTokenMint", "isMut": true, "isSigner": false }, { "name": "buyer", "isMut": false, "isSigner": true }, { "name": "seller", "isMut": false, "isSigner": true }, { "name": "buyerAccount", "isMut": true, "isSigner": false }, { "name": "sellerAccount", "isMut": true, "isSigner": false }, { "name": "buyerLongTokenAccount", "isMut": true, "isSigner": false }, { "name": "buyerShortTokenAccount", "isMut": true, "isSigner": false }, { "name": "sellerLongTokenAccount", "isMut": true, "isSigner": false }, { "name": "sellerShortTokenAccount", "isMut": true, "isSigner": false }, { "name": "escrowAuthority", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "size", "type": "u64" }, { "name": "buyPrice", "type": "u64" }, { "name": "sellPrice", "type": "u64" } ] }, { "name": "settle", "accounts": [ { "name": "poolAccount", "isMut": true, "isSigner": false }, { "name": "winningMint", "isMut": false, "isSigner": false }, { "name": "poolAuthority", "isMut": false, "isSigner": true } ], "args": [] }, { "name": "collect", "accounts": [ { "name": "poolAccount", "isMut": true, "isSigner": false }, { "name": "collectorAccount", "isMut": false, "isSigner": false }, { "name": "collectorLongTokenAccount", "isMut": true, "isSigner": false }, { "name": "collectorShortTokenAccount", "isMut": true, "isSigner": false }, { "name": "collectorCollateralAccount", "isMut": true, "isSigner": false }, { "name": "longTokenMintAccount", "isMut": true, "isSigner": false }, { "name": "shortTokenMintAccount", "isMut": true, "isSigner": false }, { "name": "escrowAccount", "isMut": true, "isSigner": false }, { "name": "escrowAuthorityAccount", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] } ], "accounts": [ { "name": "BinaryOption", "type": { "kind": "struct", "fields": [ { "name": "decimals", "type": "u8" }, { "name": "circulation", "type": "u64" }, { "name": "settled", "type": "bool" }, { "name": "escrowMintAccountPubkey", "type": "publicKey" }, { "name": "escrowAccountPubkey", "type": "publicKey" }, { "name": "longMintAccountPubkey", "type": "publicKey" }, { "name": "shortMintAccountPubkey", "type": "publicKey" }, { "name": "owner", "type": "publicKey" }, { "name": "winningSidePubkey", "type": "publicKey" } ] } } ], "errors": [ { "code": 0, "name": "PublicKeyMismatch", "msg": "PublicKeyMismatch" }, { "code": 1, "name": "InvalidMintAuthority", "msg": "InvalidMintAuthority" }, { "code": 2, "name": "NotMintAuthority", "msg": "NotMintAuthority" }, { "code": 3, "name": "InvalidSupply", "msg": "InvalidSupply" }, { "code": 4, "name": "InvalidWinner", "msg": "InvalidWinner" }, { "code": 5, "name": "UninitializedAccount", "msg": "UninitializedAccount" }, { "code": 6, "name": "IncorrectOwner", "msg": "IncorrectOwner" }, { "code": 7, "name": "AlreadySettled", "msg": "AlreadySettled" }, { "code": 8, "name": "BetNotSettled", "msg": "BetNotSettled" }, { "code": 9, "name": "TokenNotFoundInPool", "msg": "TokenNotFoundInPool" }, { "code": 10, "name": "PublicKeysShouldBeUnique", "msg": "PublicKeysShouldBeUnique" }, { "code": 11, "name": "TradePricesIncorrect", "msg": "TradePricesIncorrect" } ] }