{ "version": "0.1.0", "name": "protobook", "metadata": { "origin": "anchor" }, "instructions": [ { "name": "cancel", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "order", "isMut": true, "isSigner": false } ], "args": [] }, { "name": "close", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "order", "isMut": true, "isSigner": false }, { "name": "vaultA", "isMut": true, "isSigner": false }, { "name": "vaultB", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] }, { "name": "collect", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "beneficiary", "isMut": true, "isSigner": false }, { "name": "feeCollector", "isMut": true, "isSigner": false }, { "name": "order", "isMut": true, "isSigner": false }, { "name": "vault", "isMut": true, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] }, { "name": "fill", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "order", "isMut": true, "isSigner": false }, { "name": "receipt", "isMut": true, "isSigner": false }, { "name": "sender", "isMut": true, "isSigner": false }, { "name": "vaultB", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "open", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "feeCollector", "isMut": false, "isSigner": false }, { "name": "mintA", "isMut": false, "isSigner": false }, { "name": "mintB", "isMut": false, "isSigner": false }, { "name": "order", "isMut": true, "isSigner": false }, { "name": "sender", "isMut": true, "isSigner": false }, { "name": "vaultA", "isMut": true, "isSigner": false }, { "name": "vaultB", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false }, { "name": "associatedTokenProgram", "isMut": false, "isSigner": false } ], "args": [ { "name": "amountA", "type": "u64" }, { "name": "amountB", "type": "u64" }, { "name": "expiresAt", "type": "i64" }, { "name": "fee", "type": "u64" }, { "name": "id", "type": { "array": ["u8", 32] } } ] }, { "name": "redeem", "accounts": [ { "name": "signer", "isMut": false, "isSigner": true }, { "name": "beneficiary", "isMut": true, "isSigner": false }, { "name": "order", "isMut": true, "isSigner": false }, { "name": "receipt", "isMut": true, "isSigner": false }, { "name": "vault", "isMut": true, "isSigner": false }, { "name": "systemProgram", "isMut": false, "isSigner": false }, { "name": "tokenProgram", "isMut": false, "isSigner": false } ], "args": [] } ], "accounts": [ { "name": "Order", "type": { "kind": "struct", "fields": [ { "name": "authority", "type": "publicKey" }, { "name": "amountA", "type": "u64" }, { "name": "amountB", "type": "u64" }, { "name": "expiresAt", "type": "i64" }, { "name": "fee", "type": "u64" }, { "name": "feeCollector", "type": "publicKey" }, { "name": "id", "type": { "array": ["u8", 32] } }, { "name": "mintA", "type": "publicKey" }, { "name": "mintB", "type": "publicKey" }, { "name": "totalDeposits", "type": "u64" } ] } }, { "name": "Receipt", "type": { "kind": "struct", "fields": [ { "name": "authority", "type": "publicKey" }, { "name": "deposit", "type": "u64" }, { "name": "order", "type": "publicKey" } ] } } ], "types": [ { "name": "ProtobookInstruction", "type": { "kind": "enum", "variants": [ { "name": "Cancel" }, { "name": "Close" }, { "name": "Collect" }, { "name": "Fill" }, { "name": "Open" }, { "name": "Redeem" } ] } }, { "name": "Open", "type": { "kind": "struct", "fields": [ { "name": "amountA", "type": "u64" }, { "name": "amountB", "type": "u64" }, { "name": "expiresAt", "type": "i64" }, { "name": "fee", "type": "u64" }, { "name": "id", "type": { "array": ["u8", 32] } } ] } }, { "name": "Fill", "type": { "kind": "struct", "fields": [ { "name": "amount", "type": "u64" } ] } } ] }