Complete instruction account lists#
<!-- Generated by scripts/generate_docs_instruction_accounts.mjs. Edit the SDK account construction and regenerate. -->This appendix covers all 77 live public instruction tags. The tag inventory is checked against Rust, and each ordered account grammar is extracted from the current TypeScript builder. Frozen tombstones and internal LOG are excluded. The on-chain account parser remains authoritative for validation and runtime preconditions; builder coverage alone is not a cross-language ABI conformance proof.
Use these lists with the instruction arguments and lifecycle rules, account layouts, and PDA derivation. The snippets below describe account assembly; they are not standalone transaction examples.
Reading the lists#
- Array entries are in wire order, starting at index zero. A spread inserts every entry in that array at that point;
.pushappends accounts in statement order. readonly(address)means read-only, non-signer;writable(address)means writable, non-signer;signer(address)means read-only signer;writableSigner(address)means writable signer.- Conditions are preserved. Supply a complete optional account group when its branch applies. Omitting a group changes the indices of later groups. Builder field names use camelCase.
- A shared helper is expanded in the final section. Follow its return list at the call site, including any splice or appended account.
appendBinaryRecorderTailappends the canonical read-onlyself_program, then read-onlylog_authoritypair. UsebinaryRecorderTail(programAddress)for a custom deployment. This pair is required by recorder-enabled on-chain instructions; instructions whose lists do not append it are eventless. The SDK supplies the canonical pair for its default program.
Do not replace a required account with a caller-selected creator or treasury. Account order does not replace owner, signer, PDA, token-mint, market-kind, or config checks. In particular, external market metadata and redemption mirrors are conditional groups, and free-funds trading still uses the placement account surface shown below.
Live instructions#
| Tag | Instruction | SDK builder |
|---|---|---|
0x00 | INITIALIZE_CONFIG | buildInitializeConfigIx |
0x01 | UPDATE_AUTHORITY | buildUpdateAuthorityIx |
0x02 | CLAIM_AUTHORITY | buildClaimAuthorityIx |
0x03 | CREATE_MARKET | buildCreateMarketIx |
0x04 | SNAPSHOT_END | buildSnapshotEndIx |
0x05 | RESOLVE_MARKET | buildResolveMarketIx |
0x06 | EXPIRE_MARKET | buildExpireMarketIx |
0x07 | MINT_SHARES | buildMintSharesIx |
0x08 | DEPOSIT_FUNDS | buildDepositFundsIx |
0x09 | WITHDRAW_FUNDS | buildWithdrawFundsIx |
0x0A | WITHDRAW_SHARES | buildWithdrawSharesIx |
0x0B | PLACE_ORDER | buildPlaceOrderIx |
0x0C | PLACE_MULTIPLE_POST_ONLY_ORDERS | buildPlaceMultiplePostOnlyOrdersIx |
0x0D | SWAP_WITH_FREE_FUNDS | buildSwapWithFreeFundsIx |
0x0E | PLACE_LIMIT_ORDER_WITH_FREE_FUNDS | buildPlaceLimitOrderWithFreeFundsIx |
0x0F | PLACE_MULTIPLE_POST_ONLY_ORDERS_WITH_FREE_FUNDS | buildPlaceMultiplePostOnlyOrdersWithFreeFundsIx |
0x10 | CANCEL_ORDER | buildCancelOrderIx |
0x11 | CANCEL_MULTIPLE_ORDERS_BY_ID | buildCancelMultipleOrdersByIdIx |
0x12 | CANCEL_ALL_ORDERS | buildCancelAllOrdersIx |
0x13 | CANCEL_UP_TO | buildCancelUpToIx |
0x14 | REDUCE_ORDER | buildReduceOrderIx |
0x15 | CANCEL_MULTIPLE_ORDERS_BY_ID_WITH_FREE_FUNDS | buildCancelMultipleOrdersByIdWithFreeFundsIx |
0x16 | CANCEL_ALL_ORDERS_WITH_FREE_FUNDS | buildCancelAllOrdersWithFreeFundsIx |
0x17 | CANCEL_UP_TO_WITH_FREE_FUNDS | buildCancelUpToWithFreeFundsIx |
0x18 | REDUCE_ORDER_WITH_FREE_FUNDS | buildReduceOrderWithFreeFundsIx |
0x19 | RECLAIM_EXPIRED_ORDER | buildReclaimExpiredOrderIx |
0x1A | REDEEM | buildRedeemIx |
0x1B | FORCE_CLOSE | buildForceCloseIx |
0x1C | MARK_POSITION_SETTLED | buildMarkPositionSettledIx |
0x1D | CLOSE_POSITION | buildClosePositionIx |
0x1E | CLOSE_MARKET | buildCloseMarketIx |
0x1F | UPDATE_FEE_CONFIG | buildUpdateFeeConfigIx |
0x20 | UPDATE_TREASURY_RECIPIENTS | buildUpdateTreasuryRecipientsIx |
0x21 | SET_REFERRER | buildSetReferrerIx |
0x22 | INIT_REFERRER_EARNINGS_ACCOUNT | buildInitReferrerEarningsAccountIx |
0x23 | CLAIM_CREATOR_FEES | buildClaimCreatorFeesIx |
0x24 | CLAIM_REFERRER_EARNINGS | buildClaimReferrerEarningsIx |
0x25 | PAUSE | buildPauseIx |
0x26 | UNPAUSE | buildUnpauseIx |
0x27 | ENABLE_POST_ONLY_MODE | buildEnablePostOnlyModeIx |
0x28 | DISABLE_POST_ONLY_MODE | buildDisablePostOnlyModeIx |
0x29 | UPDATE_TICK_SIZE | buildUpdateTickSizeIx |
0x2A | UPDATE_MIN_RESTING_NOTIONAL | buildUpdateMinRestingNotionalIx |
0x2B | UPDATE_MARKET_CAP | buildUpdateMarketCapIx |
0x2C | SET_MARKET_EMERGENCY_STATUS | buildSetMarketEmergencyStatusIx |
0x2D | FORCE_CANCEL_MARKET_ORDERS | buildForceCancelMarketOrdersIx |
0x2E | ENSURE_TRADER_LEDGER_SPACE | buildEnsureTraderLedgerSpaceIx |
0x2F | UPDATE_OPERATIONAL_PARAMS | buildUpdateOperationalParamsIx |
0x33 | ENSURE_DEEP_ORDERBOOK_SPACE | buildEnsureDeepOrderbookSpaceIx |
0x34 | SET_PAUSER | buildSetPauserIx |
0x35 | TOP_UP_CLOSER_REWARDS | buildTopUpCloserRewardsIx |
0x36 | ROLLUP_REFERRAL_FEES | buildRollupReferralFeesIx |
0x37 | INITIALIZE_REFERRER_TREASURY_SHARD | buildInitializeReferrerTreasuryShardIx |
0x30 | RECOVER_SPLINE | buildRecoverSplineIx |
0x40 | INIT_SPLINE | buildInitSplineIx |
0x41 | UPDATE_SPLINE_SHAPE | buildUpdateSplineShapeIx |
0x42 | UPDATE_SPLINE_MID | buildUpdateSplineMidIx |
0x43 | ATTACH_SPLINE | buildAttachSplineIx |
0x44 | SETTLE_SPLINE | buildSettleSplineIx |
0x45 | DEPOSIT_SPLINE_VAULT | buildDepositSplineVaultIx |
0x46 | WITHDRAW_SPLINE_VAULT | buildWithdrawSplineVaultIx |
0x47 | CLOSE_SPLINE | buildCloseSplineIx |
0x48 | INIT_RESOLVER_REGISTRY | buildInitResolverRegistryIx |
0x49 | UPDATE_RESOLVER_REGISTRY | buildUpdateResolverRegistryIx |
0x4D | EXPIRE_EXTERNAL_MARKET | buildExpireExternalMarketIx |
0x4E | SHRINK_PREALLOCATED_CHILD | buildShrinkPreallocatedChildIx |
0x50 | RECLAIM_EXTERNAL_MARKET_PREALLOCATION | buildReclaimExternalMarketPreallocationIx |
0x51 | TOP_UP_EXTERNAL_PROGRESS_RESERVE | buildTopUpExternalProgressReserveIx |
0x52 | BEGIN_RECLAIM_EXTERNAL_MARKET_V1 | buildBeginReclaimExternalMarketV1Ix |
0x53 | OPEN_RECLAIM_EXTERNAL_MARKET_V1 | buildOpenReclaimExternalMarketV1Ix |
0x54 | RESOLVE_EXTERNAL_MARKET_WITH_RECLAIM_V1 | buildResolveExternalMarketWithReclaimV1Ix |
0x55 | HALT_EXTERNAL_MARKET_WITH_RECLAIM_V1 | buildHaltExternalMarketWithReclaimV1Ix |
0x56 | EXTEND_EXTERNAL_CLOSE_WITH_RECLAIM_V1 | buildExtendExternalCloseWithReclaimV1Ix |
0x57 | RECORD_ORACLE_OBSERVATION | buildRecordOracleObservationIx |
0x58 | SUBMIT_ORACLE_OBSERVATION | buildSubmitOracleObservationIx |
0x59 | FINALIZE_ORACLE_OBSERVATION | buildFinalizeOracleObservationIx |
0x5A | CLOSE_ORACLE_OBSERVATION | buildCloseOracleObservationIx |
buildInitializeConfigIx#
Wire tag 0x00 (INITIALIZE_CONFIG). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.config),
writableSigner(accounts.authority),
...accounts.treasuryRecipients.map((r) => readonly(r)),
readonly(accounts.defaultSettlementMint),
readonly(accounts.systemProgram),
readonly(accounts.programData),
];
appendBinaryRecorderTail(accountMetas, accounts, 'InitializeConfig', programAddress);
return accountMetas;
buildUpdateAuthorityIx#
Wire tag 0x01 (UPDATE_AUTHORITY). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateAuthority', programAddress);
return accountMetas;
buildClaimAuthorityIx#
Wire tag 0x02 (CLAIM_AUTHORITY). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.pendingAuthority)];
appendBinaryRecorderTail(accountMetas, accounts, 'ClaimAuthority', programAddress);
return accountMetas;
buildCreateMarketIx#
Wire tag 0x03 (CREATE_MARKET). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.vault),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.assetState),
writable(accounts.config),
readonly(accounts.priceUpdate),
readonly(accounts.settlementMint),
writableSigner(accounts.payer),
readonly(accounts.systemProgram),
readonly(accounts.tokenProgram),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.traderLedger),
];
appendBinaryRecorderTail(accountMetas, accounts, 'CreateMarket', programAddress);
return accountMetas;
buildSnapshotEndIx#
Wire tag 0x04 (SNAPSHOT_END). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
readonly(accounts.priceUpdate),
writableSigner(accounts.caller),
readonly(accounts.config),
];
appendBinaryRecorderTail(accountMetas, accounts, 'SnapshotEnd', programAddress);
return accountMetas;
buildResolveMarketIx#
Wire tag 0x05 (RESOLVE_MARKET). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.assetState),
writableSigner(accounts.caller),
readonly(accounts.config),
writable(accounts.vault),
writable(accounts.creatorTokenAccount),
readonly(accounts.settlementMint),
readonly(accounts.tokenProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'ResolveMarket', programAddress);
return accountMetas;
buildExpireMarketIx#
Wire tag 0x06 (EXPIRE_MARKET). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas = [
writable(accounts.market),
readonly(accounts.assetState),
writableSigner(accounts.caller),
readonly(accounts.config),
writable(accounts.vault),
writable(accounts.creatorTokenAccount),
readonly(accounts.settlementMint),
readonly(accounts.tokenProgram),
];
if (accounts.priceUpdate) {
accountMetas.push(readonly(accounts.priceUpdate));
}
appendBinaryRecorderTail(accountMetas, accounts, 'ExpireMarket', programAddress);
return accountMetas;
buildMintSharesIx#
Wire tag 0x07 (MINT_SHARES). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.userYesAta),
writable(accounts.userNoAta),
writable(accounts.userStablecoinAta),
writable(accounts.vault),
writableSigner(accounts.user),
readonly(accounts.config),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
];
appendBinaryRecorderTail(accountMetas, accounts, 'MintShares', programAddress);
return accountMetas;
buildDepositFundsIx#
Wire tag 0x08 (DEPOSIT_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return depositOrWithdrawFundsAccountMetas(accounts, programAddress);
Expand: depositOrWithdrawFundsAccountMetas.
buildWithdrawFundsIx#
Wire tag 0x09 (WITHDRAW_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return depositOrWithdrawFundsAccountMetas(accounts, programAddress);
Expand: depositOrWithdrawFundsAccountMetas.
buildWithdrawSharesIx#
Wire tag 0x0A (WITHDRAW_SHARES). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.userPosition),
writable(accounts.mint),
writable(accounts.userTokenAccount),
signer(accounts.user),
readonly(accounts.config),
readonly(accounts.tokenProgram),
writable(accounts.traderLedger),
readonly(accounts.vault),
];
appendBinaryRecorderTail(accountMetas, accounts, 'buildWithdrawSharesIx', programAddress);
return accountMetas;
buildPlaceOrderIx#
Wire tag 0x0B (PLACE_ORDER). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return placeOrderAccountMetas(accounts, programAddress);
Expand: placeOrderAccountMetas.
buildPlaceMultiplePostOnlyOrdersIx#
Wire tag 0x0C (PLACE_MULTIPLE_POST_ONLY_ORDERS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return placeOrderAccountMetas(accounts, programAddress);
Expand: placeOrderAccountMetas.
buildSwapWithFreeFundsIx#
Wire tag 0x0D (SWAP_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return placeOrderAccountMetas(accounts, programAddress);
Expand: placeOrderAccountMetas.
buildPlaceLimitOrderWithFreeFundsIx#
Wire tag 0x0E (PLACE_LIMIT_ORDER_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return placeOrderAccountMetas(accounts, programAddress);
Expand: placeOrderAccountMetas.
buildPlaceMultiplePostOnlyOrdersWithFreeFundsIx#
Wire tag 0x0F (PLACE_MULTIPLE_POST_ONLY_ORDERS_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return placeOrderAccountMetas(accounts, programAddress);
Expand: placeOrderAccountMetas.
buildCancelOrderIx#
Wire tag 0x10 (CANCEL_ORDER). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderAccountMetas(accounts, programAddress);
Expand: cancelOrderAccountMetas.
buildCancelMultipleOrdersByIdIx#
Wire tag 0x11 (CANCEL_MULTIPLE_ORDERS_BY_ID). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderAccountMetas(accounts, programAddress);
Expand: cancelOrderAccountMetas.
buildCancelAllOrdersIx#
Wire tag 0x12 (CANCEL_ALL_ORDERS). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderAccountMetas(accounts, programAddress);
Expand: cancelOrderAccountMetas.
buildCancelUpToIx#
Wire tag 0x13 (CANCEL_UP_TO). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderAccountMetas(accounts, programAddress);
Expand: cancelOrderAccountMetas.
buildReduceOrderIx#
Wire tag 0x14 (REDUCE_ORDER). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return reduceOrderAccountMetas(accounts, programAddress);
Expand: reduceOrderAccountMetas.
buildCancelMultipleOrdersByIdWithFreeFundsIx#
Wire tag 0x15 (CANCEL_MULTIPLE_ORDERS_BY_ID_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderWithFreeFundsAccountMetas(accounts, programAddress);
Expand: cancelOrderWithFreeFundsAccountMetas.
buildCancelAllOrdersWithFreeFundsIx#
Wire tag 0x16 (CANCEL_ALL_ORDERS_WITH_FREE_FUNDS). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderWithFreeFundsAccountMetas(accounts, programAddress);
Expand: cancelOrderWithFreeFundsAccountMetas.
buildCancelUpToWithFreeFundsIx#
Wire tag 0x17 (CANCEL_UP_TO_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return cancelOrderWithFreeFundsAccountMetas(accounts, programAddress);
Expand: cancelOrderWithFreeFundsAccountMetas.
buildReduceOrderWithFreeFundsIx#
Wire tag 0x18 (REDUCE_ORDER_WITH_FREE_FUNDS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return reduceOrderWithFreeFundsAccountMetas(accounts, programAddress);
Expand: reduceOrderWithFreeFundsAccountMetas.
buildReclaimExpiredOrderIx#
Wire tag 0x19 (RECLAIM_EXPIRED_ORDER). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.makerPosition),
writable(accounts.makerTokenAccount),
writable(accounts.vault),
readonly(accounts.maker),
signer(accounts.caller),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.makerYesAta),
writable(accounts.makerNoAta),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.traderLedger),
];
if (accounts.marketMeta) metas.push(readonly(accounts.marketMeta));
if (accounts.callerStablecoinAta) {
metas.push(writable(accounts.callerStablecoinAta));
}
appendBinaryRecorderTail(metas, accounts, 'ReclaimExpiredOrder', programAddress);
return metas;
buildRedeemIx#
Wire tag 0x1A (REDEEM). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const hasAnyPositionMirror =
accounts.userPosition !== undefined ||
accounts.orderbook !== undefined ||
accounts.traderLedger !== undefined;
const hasFullPositionMirror =
accounts.userPosition !== undefined &&
accounts.orderbook !== undefined &&
accounts.traderLedger !== undefined;
if (hasAnyPositionMirror && !hasFullPositionMirror) {
throw new SeesawValidationError(
'Redeem position mirror accounts must be provided together: userPosition, orderbook, traderLedger'
);
}
if (params.amount === 0n && !hasFullPositionMirror) {
throw new SeesawValidationError(
'Redeem amount 0 requires the position mirror accounts: userPosition, orderbook, traderLedger'
);
}
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.userYesAta),
writable(accounts.userNoAta),
writable(accounts.userStablecoinAta),
writable(accounts.vault),
params.amount > 0n ? signer(accounts.user) : readonly(accounts.user),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
];
if (accounts.marketMeta !== undefined) {
accountMetas.push(readonly(accounts.marketMeta));
}
if (hasFullPositionMirror) {
accountMetas.push(writable(accounts.userPosition!));
accountMetas.push(writable(accounts.orderbook!));
accountMetas.push(writable(accounts.traderLedger!));
}
appendBinaryRecorderTail(accountMetas, accounts, 'Redeem', programAddress);
return accountMetas;
buildForceCloseIx#
Wire tag 0x1B (FORCE_CLOSE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.position),
writable(accounts.vault),
writable(accounts.userStablecoinAta),
writableSigner(accounts.caller),
readonly(accounts.config),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
writable(accounts.orderbook),
writable(accounts.traderLedger),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.yesMint),
writable(accounts.noMint),
];
appendBinaryRecorderTail(accountMetas, accounts, 'ForceClose', programAddress);
return accountMetas;
buildMarkPositionSettledIx#
Wire tag 0x1C (MARK_POSITION_SETTLED). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.position),
writable(accounts.market),
writable(accounts.traderLedger),
signer(accounts.caller),
writable(accounts.vault),
writable(accounts.ownerSettlementAta),
readonly(accounts.settlementMint),
readonly(accounts.tokenProgram),
];
if (accounts.marketMeta) accountMetas.push(readonly(accounts.marketMeta));
appendBinaryRecorderTail(accountMetas, accounts, 'buildMarkPositionSettledIx', programAddress);
return accountMetas;
buildClosePositionIx#
Wire tag 0x1D (CLOSE_POSITION). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.position),
readonly(accounts.market),
writable(accounts.owner),
signer(accounts.caller),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'ClosePosition', programAddress);
return accountMetas;
buildCloseMarketIx#
Wire tag 0x1E (CLOSE_MARKET). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const hasAnyShareMint = accounts.yesMint !== undefined || accounts.noMint !== undefined;
const hasBothShareMints = accounts.yesMint !== undefined && accounts.noMint !== undefined;
if (hasAnyShareMint && !hasBothShareMints) {
throw new SeesawValidationError(
'CloseMarket share mint accounts must be provided together: yesMint, noMint'
);
}
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.creator),
signer(accounts.caller),
readonly(accounts.config),
readonly(accounts.systemProgram),
writable(accounts.vault),
readonly(accounts.tokenProgram),
writable(accounts.orderbook),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.traderLedger),
writable(accounts.creatorStablecoinAta),
];
if (accounts.marketMeta) accountMetas.push(writable(accounts.marketMeta));
if (hasBothShareMints) {
accountMetas.push(writable(accounts.yesMint!), writable(accounts.noMint!));
}
appendBinaryRecorderTail(accountMetas, accounts, 'CloseMarket', programAddress);
return accountMetas;
buildUpdateFeeConfigIx#
Wire tag 0x1F (UPDATE_FEE_CONFIG). Parameters: accounts, params, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateFeeConfig', programAddress);
return accountMetas;
buildUpdateTreasuryRecipientsIx#
Wire tag 0x20 (UPDATE_TREASURY_RECIPIENTS). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.config),
signer(accounts.authority),
...accounts.recipients.map((r) => readonly(r)),
];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateTreasuryRecipients', programAddress);
return accountMetas;
buildSetReferrerIx#
Wire tag 0x21 (SET_REFERRER). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.referralAccount),
writableSigner(accounts.referee),
readonly(accounts.referrer),
readonly(accounts.referrerEarningsAccount),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'SetReferrer', programAddress);
return accountMetas;
buildInitReferrerEarningsAccountIx#
Wire tag 0x22 (INIT_REFERRER_EARNINGS_ACCOUNT). Parameters: accounts, treasuryIndex, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.referrerEarningsAccount),
writableSigner(accounts.referrer),
writable(accounts.referrerTreasuryShard),
readonly(accounts.settlementMint),
readonly(accounts.config),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'InitReferrerEarningsAccount', programAddress);
return accountMetas;
buildClaimCreatorFeesIx#
Wire tag 0x23 (CLAIM_CREATOR_FEES). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.vault),
writable(accounts.creatorTokenAccount),
readonly(accounts.settlementMint),
signer(accounts.caller),
readonly(accounts.tokenProgram),
];
if (accounts.marketMeta) accountMetas.push(readonly(accounts.marketMeta));
appendBinaryRecorderTail(accountMetas, accounts, 'ClaimCreatorFees', programAddress);
return accountMetas;
buildClaimReferrerEarningsIx#
Wire tag 0x24 (CLAIM_REFERRER_EARNINGS). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.referrerEarningsAccount),
writable(accounts.referrerTreasury),
writable(accounts.referrerTokenAccount),
readonly(accounts.settlementMint),
signer(accounts.referrer),
readonly(accounts.tokenProgram),
readonly(accounts.config),
];
appendBinaryRecorderTail(accountMetas, accounts, 'ClaimReferrerEarnings', programAddress);
return accountMetas;
buildPauseIx#
Wire tag 0x25 (PAUSE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'Pause', programAddress);
return accountMetas;
buildUnpauseIx#
Wire tag 0x26 (UNPAUSE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'Unpause', programAddress);
return accountMetas;
buildEnablePostOnlyModeIx#
Wire tag 0x27 (ENABLE_POST_ONLY_MODE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'EnablePostOnlyMode', programAddress);
return accountMetas;
buildDisablePostOnlyModeIx#
Wire tag 0x28 (DISABLE_POST_ONLY_MODE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'DisablePostOnlyMode', programAddress);
return accountMetas;
buildUpdateTickSizeIx#
Wire tag 0x29 (UPDATE_TICK_SIZE). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateTickSize', programAddress);
return accountMetas;
buildUpdateMinRestingNotionalIx#
Wire tag 0x2A (UPDATE_MIN_RESTING_NOTIONAL). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateMinRestingNotional', programAddress);
return accountMetas;
buildUpdateMarketCapIx#
Wire tag 0x2B (UPDATE_MARKET_CAP). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
readonly(accounts.config),
signer(accounts.authority),
];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateMarketCap', programAddress);
return accountMetas;
buildSetMarketEmergencyStatusIx#
Wire tag 0x2C (SET_MARKET_EMERGENCY_STATUS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
readonly(accounts.config),
writable(accounts.market),
signer(accounts.authority),
];
appendBinaryRecorderTail(accountMetas, accounts, 'SetMarketEmergencyStatus', programAddress);
return accountMetas;
buildForceCancelMarketOrdersIx#
Wire tag 0x2D (FORCE_CANCEL_MARKET_ORDERS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
readonly(accounts.config),
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.makerPosition),
writable(accounts.makerTokenAccount),
writable(accounts.vault),
readonly(accounts.maker),
signer(accounts.authority),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.makerYesAta),
writable(accounts.makerNoAta),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.traderLedger),
];
appendBinaryRecorderTail(accountMetas, accounts, 'ForceCancelMarketOrders', programAddress);
return accountMetas;
buildEnsureTraderLedgerSpaceIx#
Wire tag 0x2E (ENSURE_TRADER_LEDGER_SPACE). Parameters: accounts, targetSize, programAddress = PROGRAM_ADDRESS, nativeIntent?.
const accountMetas: AccountMeta[] = [
writableSigner(accounts.payer),
writable(accounts.traderLedger),
readonly(accounts.market),
readonly(accounts.systemProgram),
];
if (accounts.preallocationReceipt) accountMetas.push(readonly(accounts.preallocationReceipt));
appendBinaryRecorderTail(accountMetas, accounts, 'EnsureTraderLedgerSpace', programAddress);
return accountMetas;
buildUpdateOperationalParamsIx#
Wire tag 0x2F (UPDATE_OPERATIONAL_PARAMS). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'UpdateOperationalParams', programAddress);
return accountMetas;
buildEnsureDeepOrderbookSpaceIx#
Wire tag 0x33 (ENSURE_DEEP_ORDERBOOK_SPACE). Parameters: accounts, capacity, programAddress = PROGRAM_ADDRESS, nativeIntent?.
const accountMetas: AccountMeta[] = [
writableSigner(accounts.payer),
writable(accounts.orderbook),
readonly(accounts.market),
readonly(accounts.systemProgram),
];
if (accounts.preallocationReceipt) accountMetas.push(readonly(accounts.preallocationReceipt));
return accountMetas;
buildSetPauserIx#
Wire tag 0x34 (SET_PAUSER). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [writable(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(accountMetas, accounts, 'SetPauser', programAddress);
return accountMetas;
buildTopUpCloserRewardsIx#
Wire tag 0x35 (TOP_UP_CLOSER_REWARDS). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writableSigner(accounts.payer),
readonly(accounts.config),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'TopUpCloserRewards', programAddress);
return accountMetas;
buildRollupReferralFeesIx#
Wire tag 0x36 (ROLLUP_REFERRAL_FEES). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.vault),
writable(accounts.referrerEarningsAccount),
writable(accounts.referrerTreasuryShard),
readonly(accounts.settlementMint),
readonly(accounts.tokenProgram),
signer(accounts.caller),
...accounts.positions.map(writable),
];
if (accounts.marketMeta) accountMetas.push(readonly(accounts.marketMeta));
appendBinaryRecorderTail(accountMetas, accounts, 'RollupReferralFees', programAddress);
return accountMetas;
buildInitializeReferrerTreasuryShardIx#
Wire tag 0x37 (INITIALIZE_REFERRER_TREASURY_SHARD). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.referrerTreasuryShard),
readonly(accounts.settlementMint),
readonly(accounts.config),
writableSigner(accounts.payer),
readonly(accounts.systemProgram),
readonly(accounts.tokenProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'InitializeReferrerTreasuryShard', programAddress);
return accountMetas;
buildRecoverSplineIx#
Wire tag 0x30 (RECOVER_SPLINE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas = [
signer(accounts.creator),
writable(accounts.spline),
writable(accounts.splineVault),
writable(accounts.market),
writable(accounts.marketVault),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.creatorYesTokenAccount),
writable(accounts.creatorNoTokenAccount),
readonly(accounts.tokenProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'RecoverSpline', programAddress);
return accountMetas;
buildInitSplineIx#
Wire tag 0x40 (INIT_SPLINE). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas = [
writableSigner(accounts.creator),
writable(accounts.spline),
writable(accounts.splineVault),
readonly(accounts.settlementMint),
readonly(accounts.config),
readonly(accounts.tokenProgram),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'InitSpline', programAddress);
return accountMetas;
buildUpdateSplineShapeIx#
Wire tag 0x41 (UPDATE_SPLINE_SHAPE). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [writableSigner(accounts.creator), writable(accounts.spline)];
if (accounts.market) metas.push(writable(accounts.market));
appendBinaryRecorderTail(metas, accounts, 'UpdateSplineShape', programAddress);
return metas;
buildUpdateSplineMidIx#
Wire tag 0x42 (UPDATE_SPLINE_MID). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return [signer(accounts.creatorOrQuoteAuthority), writable(accounts.spline)];
buildAttachSplineIx#
Wire tag 0x43 (ATTACH_SPLINE). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
writableSigner(accounts.creator),
writable(accounts.spline),
writable(accounts.splineVault),
writable(accounts.market),
writable(accounts.marketVault),
readonly(accounts.config),
readonly(accounts.tokenProgram),
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(metas, accounts, 'AttachSpline', programAddress);
return metas;
buildSettleSplineIx#
Wire tag 0x44 (SETTLE_SPLINE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
signer(accounts.caller),
writable(accounts.spline),
writable(accounts.splineVault),
writable(accounts.market),
writable(accounts.marketVault),
readonly(accounts.tokenProgram),
];
if (accounts.marketMeta) metas.push(readonly(accounts.marketMeta));
appendBinaryRecorderTail(metas, accounts, 'SettleSpline', programAddress);
return metas;
buildDepositSplineVaultIx#
Wire tag 0x45 (DEPOSIT_SPLINE_VAULT). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return buildSplineVaultAmountIx(
InstructionDiscriminator.DepositSplineVault,
params,
accounts,
programAddress
);
Expand: buildSplineVaultAmountIx.
buildWithdrawSplineVaultIx#
Wire tag 0x46 (WITHDRAW_SPLINE_VAULT). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return buildSplineVaultAmountIx(
InstructionDiscriminator.WithdrawSplineVault,
params,
accounts,
programAddress
);
Expand: buildSplineVaultAmountIx.
buildCloseSplineIx#
Wire tag 0x47 (CLOSE_SPLINE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas = [
writableSigner(accounts.creator),
writable(accounts.spline),
writable(accounts.splineVault),
readonly(accounts.tokenProgram),
];
appendBinaryRecorderTail(accountMetas, accounts, 'CloseSpline', programAddress);
return accountMetas;
buildInitResolverRegistryIx#
Wire tag 0x48 (INIT_RESOLVER_REGISTRY). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
writable(accounts.registry),
readonly(accounts.config),
writableSigner(accounts.authority),
readonly(accounts.systemProgram),
];
return metas;
buildUpdateResolverRegistryIx#
Wire tag 0x49 (UPDATE_RESOLVER_REGISTRY). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [writable(accounts.registry), readonly(accounts.config), signer(accounts.authority)];
appendBinaryRecorderTail(metas, accounts, 'UpdateResolverRegistry', programAddress);
return metas;
buildExpireExternalMarketIx#
Wire tag 0x4D (EXPIRE_EXTERNAL_MARKET). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const metas = [writable(accounts.market), writable(accounts.marketMeta), readonly(accounts.config)];
if (accounts.resolverRegistry) metas.push(readonly(accounts.resolverRegistry));
metas.push(writableSigner(accounts.reporter));
appendBinaryRecorderTail(metas, accounts, 'ExpireExternalMarket', programAddress);
return metas;
buildShrinkPreallocatedChildIx#
Wire tag 0x4E (SHRINK_PREALLOCATED_CHILD). Parameters: childKind, capacity, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
writable(accounts.child),
readonly(accounts.market),
readonly(accounts.preallocationReceipt),
];
return metas;
buildReclaimExternalMarketPreallocationIx#
Wire tag 0x50 (RECLAIM_EXTERNAL_MARKET_PREALLOCATION). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const callerMeta =
accounts.caller === accounts.creator ? writableSigner(accounts.caller) : signer(accounts.caller);
const metas = [
writable(accounts.receipt),
readonly(accounts.market),
readonly(accounts.marketMeta),
writable(accounts.orderbook),
writable(accounts.traderLedger),
writable(accounts.creator),
callerMeta,
readonly(accounts.systemProgram),
];
appendBinaryRecorderTail(metas, accounts, 'ReclaimExternalMarketPreallocation', programAddress);
return metas;
buildTopUpExternalProgressReserveIx#
Wire tag 0x51 (TOP_UP_EXTERNAL_PROGRESS_RESERVE). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const accountMetas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.marketMeta),
writableSigner(accounts.payer),
readonly(accounts.systemProgram),
];
return accountMetas;
buildBeginReclaimExternalMarketV1Ix#
Wire tag 0x52 (BEGIN_RECLAIM_EXTERNAL_MARKET_V1). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
writable(accounts.preallocationReceipt),
readonly(accounts.market),
readonly(accounts.marketMeta),
readonly(accounts.orderbook),
readonly(accounts.traderLedger),
writable(accounts.externalMarketPolicy),
readonly(accounts.config),
writableSigner(accounts.creator),
readonly(accounts.systemProgram),
readonly(accounts.reclaimVerifierProgram),
readonly(accounts.reclaimVerifierConfig),
readonly(accounts.reclaimEpochSnapshot),
writable(accounts.proofBuffer),
writable(accounts.verifiedClaimReceipt),
readonly(accounts.consumerAuthority),
];
appendBinaryRecorderTail(metas, accounts, 'BeginReclaimExternalMarketV1', programAddress);
return metas;
buildOpenReclaimExternalMarketV1Ix#
Wire tag 0x53 (OPEN_RECLAIM_EXTERNAL_MARKET_V1). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
writable(accounts.market),
writable(accounts.marketMeta),
writable(accounts.orderbook),
writable(accounts.vault),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.config),
readonly(accounts.settlementMint),
readonly(accounts.systemProgram),
readonly(accounts.tokenProgram),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.traderLedger),
writableSigner(accounts.creator),
writable(accounts.preallocationReceipt),
writable(accounts.receiptRefund),
readonly(accounts.externalMarketPolicy),
readonly(accounts.consumerAuthority),
];
appendBinaryRecorderTail(metas, accounts, 'OpenReclaimExternalMarketV1', programAddress);
return metas;
buildResolveExternalMarketWithReclaimV1Ix#
Wire tag 0x54 (RESOLVE_EXTERNAL_MARKET_WITH_RECLAIM_V1). Parameters: proofBufferHash, accounts, programAddress = PROGRAM_ADDRESS.
const metas = reclaimTransitionMetas(accounts, accounts.orderbook);
appendBinaryRecorderTail(metas, accounts, 'ResolveExternalMarketWithReclaimV1', programAddress);
return metas;
Expand: reclaimTransitionMetas.
buildHaltExternalMarketWithReclaimV1Ix#
Wire tag 0x55 (HALT_EXTERNAL_MARKET_WITH_RECLAIM_V1). Parameters: proofBufferHash, accounts, programAddress = PROGRAM_ADDRESS.
const metas = reclaimTransitionMetas(accounts);
appendBinaryRecorderTail(metas, accounts, 'HaltExternalMarketWithReclaimV1', programAddress);
return metas;
Expand: reclaimTransitionMetas.
buildExtendExternalCloseWithReclaimV1Ix#
Wire tag 0x56 (EXTEND_EXTERNAL_CLOSE_WITH_RECLAIM_V1). Parameters: proofBufferHash, accounts, programAddress = PROGRAM_ADDRESS.
const metas = reclaimTransitionMetas(accounts);
appendBinaryRecorderTail(metas, accounts, 'ExtendExternalCloseWithReclaimV1', programAddress);
return metas;
Expand: reclaimTransitionMetas.
buildRecordOracleObservationIx#
Wire tag 0x57 (RECORD_ORACLE_OBSERVATION). Parameters: params, accounts, programAddress = PROGRAM_ADDRESS.
return [
role(accounts.payer, AccountRole.WRITABLE_SIGNER),
role(accounts.liveFeed, AccountRole.READONLY),
role(accounts.observation, AccountRole.WRITABLE),
role(accounts.config, AccountRole.READONLY),
role(accounts.systemProgram, AccountRole.READONLY),
];
buildSubmitOracleObservationIx#
Wire tag 0x58 (SUBMIT_ORACLE_OBSERVATION). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
role(accounts.market, AccountRole.WRITABLE),
role(accounts.contest, AccountRole.WRITABLE),
role(accounts.observation, AccountRole.READONLY),
role(accounts.payer, AccountRole.WRITABLE_SIGNER),
role(accounts.config, AccountRole.READONLY),
role(accounts.systemProgram, AccountRole.READONLY),
];
appendBinaryRecorderTail(metas, accounts, 'SubmitOracleObservation', programAddress);
return metas;
buildFinalizeOracleObservationIx#
Wire tag 0x59 (FINALIZE_ORACLE_OBSERVATION). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
const metas = [
role(accounts.market, AccountRole.WRITABLE),
role(accounts.contest, AccountRole.WRITABLE),
role(accounts.caller, AccountRole.WRITABLE_SIGNER),
role(accounts.config, AccountRole.READONLY),
role(accounts.rentRefund, AccountRole.WRITABLE),
];
appendBinaryRecorderTail(metas, accounts, 'FinalizeOracleObservation', programAddress);
return metas;
buildCloseOracleObservationIx#
Wire tag 0x5A (CLOSE_ORACLE_OBSERVATION). Parameters: accounts, programAddress = PROGRAM_ADDRESS.
return [
role(accounts.observation, AccountRole.WRITABLE),
role(accounts.refund, AccountRole.WRITABLE),
];
Shared account groups#
buildSplineVaultAmountIx#
Parameters: discriminator, params, accounts, programAddress.
const accountMetas = [
signer(accounts.creator),
writable(accounts.spline),
writable(accounts.splineVault),
writable(accounts.creatorTokenAccount),
];
if (discriminator === InstructionDiscriminator.DepositSplineVault) {
accountMetas.push(readonly(accounts.config));
}
accountMetas.push(readonly(accounts.tokenProgram));
appendBinaryRecorderTail(
accountMetas,
accounts,
discriminator === InstructionDiscriminator.DepositSplineVault
? 'DepositSplineVault'
: 'WithdrawSplineVault',
programAddress
);
return accountMetas;
cancelOrderAccountMetas#
Parameters: accounts, programAddress, appendTail = true.
const metas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.userPosition),
writable(accounts.userTokenAccount),
writable(accounts.vault),
signer(accounts.user),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.userYesAta),
writable(accounts.userNoAta),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.traderLedger),
];
if (appendTail) appendBinaryRecorderTail(metas, accounts, 'CancelOrder', programAddress);
return metas;
cancelOrderWithFreeFundsAccountMetas#
Parameters: accounts, programAddress, appendTail = true.
const metas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.userPosition),
signer(accounts.user),
writable(accounts.traderLedger),
];
if (appendTail)
appendBinaryRecorderTail(metas, accounts, 'CancelOrderWithFreeFunds', programAddress);
return metas;
depositOrWithdrawFundsAccountMetas#
Parameters: accounts, programAddress.
const metas: AccountMeta[] = [
writable(accounts.market),
writable(accounts.traderLedger),
writable(accounts.userPosition),
writable(accounts.userStablecoinAta),
writable(accounts.vault),
writableSigner(accounts.user),
readonly(accounts.config),
readonly(accounts.tokenProgram),
readonly(accounts.settlementMint),
];
appendBinaryRecorderTail(metas, accounts, 'DepositOrWithdrawFunds', programAddress);
return metas;
placeOrderAccountMetas#
Parameters: accounts, programAddress.
const metas = [
writable(accounts.market),
writable(accounts.orderbook),
writable(accounts.userPosition),
writable(accounts.userTokenAccount),
writable(accounts.vault),
writableSigner(accounts.user),
readonly(accounts.config),
writable(accounts.treasuryTokenAccount),
readonly(accounts.tokenProgram),
readonly(accounts.systemProgram),
readonly(accounts.settlementMint),
writable(accounts.yesEscrow),
writable(accounts.noEscrow),
writable(accounts.userYesAta),
writable(accounts.userNoAta),
writable(accounts.yesMint),
writable(accounts.noMint),
writable(accounts.traderLedger),
];
if (accounts.creatorSpline) metas.push(writable(accounts.creatorSpline));
if (accounts.takerReferralAccount) metas.push(readonly(accounts.takerReferralAccount));
appendBinaryRecorderTail(metas, accounts, 'PlaceOrder', programAddress);
return metas;
reclaimTransitionMetas#
Parameters: accounts, orderbook?.
return [
writable(accounts.market),
writable(accounts.marketMeta),
...(orderbook === undefined ? [] : [readonly(orderbook)]),
writable(accounts.externalMarketPolicy),
readonly(accounts.reclaimVerifierProgram),
readonly(accounts.reclaimVerifierConfig),
readonly(accounts.reclaimEpochSnapshot),
writable(accounts.proofBuffer),
writable(accounts.verifiedClaimReceipt),
readonly(accounts.consumerAuthority),
writableSigner(accounts.reporter),
readonly(accounts.systemProgram),
];
reduceOrderAccountMetas#
Parameters: accounts, programAddress.
const metas = cancelOrderAccountMetas(accounts, programAddress, false);
metas.push(readonly(accounts.config));
appendBinaryRecorderTail(metas, accounts, 'ReduceOrder', programAddress);
return metas;
Expand: cancelOrderAccountMetas.
reduceOrderWithFreeFundsAccountMetas#
Parameters: accounts, programAddress.
const metas = cancelOrderWithFreeFundsAccountMetas(accounts, programAddress, false);
metas.push(readonly(accounts.config));
appendBinaryRecorderTail(metas, accounts, 'ReduceOrderWithFreeFunds', programAddress);
return metas;
Expand: cancelOrderWithFreeFundsAccountMetas.
Source: packages/core/src/instructions.ts, packages/core/src/oracleInstructions.ts. Generated account constructions omit comments and unrelated payload encoding so stale narrative cannot redefine the wire order.