Files
Wood da550e0c3a fix: correct parameter order for buy_exact_sol_in and align Raydium CPMM field names with IDL
This commit addresses two critical issues:

1. PumpFun buy_exact_sol_in Parameter Order Fix
   - Fixed incorrect parameter parsing in buy_exact_sol_in instruction
   - Created dedicated parse_buy_exact_sol_in_instruction function
   - Correct order: spendable_sol_in (SOL) first, min_tokens_out (token) second
   - Previous bug: reused parse_buy_instruction which has reversed order
   - Impact: Fixes ~4-5% of PumpFun trades that were being parsed incorrectly
   - Issue reported by community: SOL and token amounts were swapped

2. Raydium CPMM Field Naming Alignment
   - Updated PoolState struct field names to match IDL specification exactly
   - Changed token0_vault -> token_0_vault (and similar for all token fields)
   - Changed mint0_decimals -> mint_0_decimals
   - Changed protocol_fees_token0 -> protocol_fees_token_0
   - Ensures consistency with official IDL from solana-program-idls repo
   - Improves code maintainability and readability

3. IDL Files Sync
   - Added latest IDL files from https://github.com/0xfnzero/solana-program-idls
   - Includes: pumpfun, pump_amm, raydium_cpmm, raydium_clmm, raydium_pool_v4
   - Also added: meteora_amm, meteora_damm_v2, meteora_dlmm, orca_whirlpool, raydium_launchpad
   - All IDL files stored in idl/ directory for reference

Files Modified:
- src/streaming/event_parser/protocols/pumpfun/parser.rs
- src/streaming/event_parser/protocols/raydium_cpmm/types.rs
- src/streaming/event_parser/protocols/raydium_cpmm/events.rs
- src/streaming/event_parser/protocols/raydium_cpmm/parser.rs

Testing:
-  Compiles successfully (cargo build --release)
-  All field name updates verified
-  Parameter order matches IDL specification

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 16:47:55 +08:00

2292 lines
47 KiB
JSON

{
"version": "0.3.0",
"name": "raydium_amm",
"instructions": [
{
"name": "initialize",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "lpMintAddress",
"isMut": true,
"isSigner": false
},
{
"name": "coinMintAddress",
"isMut": false,
"isSigner": false
},
{
"name": "pcMintAddress",
"isMut": false,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "poolWithdrawQueue",
"isMut": true,
"isSigner": false
},
{
"name": "poolTargetOrdersAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userLpTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolTempLpTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "userWallet",
"isMut": true,
"isSigner": true
}
],
"args": [
{
"name": "nonce",
"type": "u8"
},
{
"name": "openTime",
"type": "u64"
}
]
},
{
"name": "initialize2",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "splAssociatedTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "lpMint",
"isMut": true,
"isSigner": false
},
{
"name": "coinMint",
"isMut": false,
"isSigner": false
},
{
"name": "pcMint",
"isMut": false,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolWithdrawQueue",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolTempLp",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "userWallet",
"isMut": true,
"isSigner": true
},
{
"name": "userTokenCoin",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenPc",
"isMut": true,
"isSigner": false
},
{
"name": "userLpTokenAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "nonce",
"type": "u8"
},
{
"name": "openTime",
"type": "u64"
},
{
"name": "initPcAmount",
"type": "u64"
},
{
"name": "initCoinAmount",
"type": "u64"
}
]
},
{
"name": "monitorStep",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "clock",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolWithdrawQueue",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "serumReqQ",
"isMut": true,
"isSigner": false
},
{
"name": "serumEventQ",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "planOrderLimit",
"type": "u16"
},
{
"name": "placeOrderLimit",
"type": "u16"
},
{
"name": "cancelOrderLimit",
"type": "u16"
}
]
},
{
"name": "deposit",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": false,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "lpMintAddress",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "userCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userLpTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userOwner",
"isMut": false,
"isSigner": true
},
{
"name": "serumEventQueue",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "maxCoinAmount",
"type": "u64"
},
{
"name": "maxPcAmount",
"type": "u64"
},
{
"name": "baseSide",
"type": "u64"
}
]
},
{
"name": "withdraw",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "lpMintAddress",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolWithdrawQueue",
"isMut": true,
"isSigner": false
},
{
"name": "poolTempLpTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "userLpTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userOwner",
"isMut": false,
"isSigner": true
},
{
"name": "serumEventQ",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "migrateToOpenBook",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTokenCoin",
"isMut": true,
"isSigner": false
},
{
"name": "ammTokenPc",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "newAmmOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "newSerumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "newSerumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "admin",
"isMut": true,
"isSigner": true
}
],
"args": []
},
{
"name": "setParams",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
},
{
"name": "ammAdminAccount",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "param",
"type": "u8"
},
{
"name": "value",
"type": {
"option": "u64"
}
},
{
"name": "newPubkey",
"type": {
"option": "publicKey"
}
},
{
"name": "fees",
"type": {
"option": {
"defined": "Fees"
}
}
},
{
"name": "lastOrderDistance",
"type": {
"option": {
"defined": "LastOrderDistance"
}
}
},
{
"name": "needTakeAmounts",
"type": {
"option": {
"defined": "NeedTake"
}
}
}
]
},
{
"name": "withdrawPnl",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammConfig",
"isMut": false,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "coinPnlTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "pcPnlTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "pnlOwnerAccount",
"isMut": false,
"isSigner": true
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": false,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "withdrawSrm",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": false,
"isSigner": false
},
{
"name": "ammOwnerAccount",
"isMut": false,
"isSigner": true
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "srmToken",
"isMut": true,
"isSigner": false
},
{
"name": "destSrmToken",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "amount",
"type": "u64"
}
]
},
{
"name": "swapBaseIn",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "userSourceTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userDestinationTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceOwner",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "amountIn",
"type": "u64"
},
{
"name": "minimumAmountOut",
"type": "u64"
}
]
},
{
"name": "preInitialize",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolWithdrawQueue",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "lpMintAddress",
"isMut": true,
"isSigner": false
},
{
"name": "coinMintAddress",
"isMut": false,
"isSigner": false
},
{
"name": "pcMintAddress",
"isMut": false,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolTempLpTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "userWallet",
"isMut": true,
"isSigner": true
}
],
"args": [
{
"name": "nonce",
"type": "u8"
}
]
},
{
"name": "swapBaseOut",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "userSourceTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userDestinationTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceOwner",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "maxAmountIn",
"type": "u64"
},
{
"name": "amountOut",
"type": "u64"
}
]
},
{
"name": "simulateInfo",
"accounts": [
{
"name": "amm",
"isMut": false,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": false,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": false,
"isSigner": false
},
{
"name": "lpMintAddress",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": false,
"isSigner": false
},
{
"name": "serumEventQueue",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "param",
"type": "u8"
},
{
"name": "swapBaseInValue",
"type": {
"option": {
"defined": "SwapInstructionBaseIn"
}
}
},
{
"name": "swapBaseOutValue",
"type": {
"option": {
"defined": "SwapInstructionBaseOut"
}
}
}
]
},
{
"name": "adminCancelOrders",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "amm",
"isMut": false,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammOpenOrders",
"isMut": true,
"isSigner": false
},
{
"name": "ammTargetOrders",
"isMut": true,
"isSigner": false
},
{
"name": "poolCoinTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "poolPcTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "ammOwnerAccount",
"isMut": false,
"isSigner": true
},
{
"name": "ammConfig",
"isMut": true,
"isSigner": false
},
{
"name": "serumProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumMarket",
"isMut": true,
"isSigner": false
},
{
"name": "serumCoinVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumPcVaultAccount",
"isMut": true,
"isSigner": false
},
{
"name": "serumVaultSigner",
"isMut": false,
"isSigner": false
},
{
"name": "serumEventQ",
"isMut": true,
"isSigner": false
},
{
"name": "serumBids",
"isMut": true,
"isSigner": false
},
{
"name": "serumAsks",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "limit",
"type": "u16"
}
]
},
{
"name": "createConfigAccount",
"accounts": [
{
"name": "admin",
"isMut": true,
"isSigner": true
},
{
"name": "ammConfig",
"isMut": true,
"isSigner": false
},
{
"name": "owner",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
}
],
"args": []
},
{
"name": "updateConfigAccount",
"accounts": [
{
"name": "admin",
"isMut": false,
"isSigner": true
},
{
"name": "ammConfig",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "param",
"type": "u8"
},
{
"name": "owner",
"type": "publicKey"
}
]
}
],
"accounts": [
{
"name": "TargetOrders",
"type": {
"kind": "struct",
"fields": [
{
"name": "owner",
"type": {
"array": ["u64", 4]
}
},
{
"name": "buyOrders",
"type": {
"array": [
{
"defined": "TargetOrder"
},
50
]
}
},
{
"name": "padding1",
"type": {
"array": ["u64", 8]
}
},
{
"name": "targetX",
"type": "u128"
},
{
"name": "targetY",
"type": "u128"
},
{
"name": "planXBuy",
"type": "u128"
},
{
"name": "planYBuy",
"type": "u128"
},
{
"name": "planXSell",
"type": "u128"
},
{
"name": "planYSell",
"type": "u128"
},
{
"name": "placedX",
"type": "u128"
},
{
"name": "placedY",
"type": "u128"
},
{
"name": "calcPnlX",
"type": "u128"
},
{
"name": "calcPnlY",
"type": "u128"
},
{
"name": "sellOrders",
"type": {
"array": [
{
"defined": "TargetOrder"
},
50
]
}
},
{
"name": "padding2",
"type": {
"array": ["u64", 6]
}
},
{
"name": "replaceBuyClientId",
"type": {
"array": ["u64", 10]
}
},
{
"name": "replaceSellClientId",
"type": {
"array": ["u64", 10]
}
},
{
"name": "lastOrderNumerator",
"type": "u64"
},
{
"name": "lastOrderDenominator",
"type": "u64"
},
{
"name": "planOrdersCur",
"type": "u64"
},
{
"name": "placeOrdersCur",
"type": "u64"
},
{
"name": "validBuyOrderNum",
"type": "u64"
},
{
"name": "validSellOrderNum",
"type": "u64"
},
{
"name": "padding3",
"type": {
"array": ["u64", 10]
}
},
{
"name": "freeSlotBits",
"type": "u128"
}
]
}
},
{
"name": "Fees",
"type": {
"kind": "struct",
"fields": [
{
"name": "minSeparateNumerator",
"type": "u64"
},
{
"name": "minSeparateDenominator",
"type": "u64"
},
{
"name": "tradeFeeNumerator",
"type": "u64"
},
{
"name": "tradeFeeDenominator",
"type": "u64"
},
{
"name": "pnlNumerator",
"type": "u64"
},
{
"name": "pnlDenominator",
"type": "u64"
},
{
"name": "swapFeeNumerator",
"type": "u64"
},
{
"name": "swapFeeDenominator",
"type": "u64"
}
]
}
},
{
"name": "AmmInfo",
"type": {
"kind": "struct",
"fields": [
{
"name": "status",
"type": "u64"
},
{
"name": "nonce",
"type": "u64"
},
{
"name": "orderNum",
"type": "u64"
},
{
"name": "depth",
"type": "u64"
},
{
"name": "coinDecimals",
"type": "u64"
},
{
"name": "pcDecimals",
"type": "u64"
},
{
"name": "state",
"type": "u64"
},
{
"name": "resetFlag",
"type": "u64"
},
{
"name": "minSize",
"type": "u64"
},
{
"name": "volMaxCutRatio",
"type": "u64"
},
{
"name": "amountWave",
"type": "u64"
},
{
"name": "coinLotSize",
"type": "u64"
},
{
"name": "pcLotSize",
"type": "u64"
},
{
"name": "minPriceMultiplier",
"type": "u64"
},
{
"name": "maxPriceMultiplier",
"type": "u64"
},
{
"name": "sysDecimalValue",
"type": "u64"
},
{
"name": "fees",
"type": {
"defined": "Fees"
}
},
{
"name": "outPut",
"type": {
"defined": "OutPutData"
}
},
{
"name": "tokenCoin",
"type": "publicKey"
},
{
"name": "tokenPc",
"type": "publicKey"
},
{
"name": "coinMint",
"type": "publicKey"
},
{
"name": "pcMint",
"type": "publicKey"
},
{
"name": "lpMint",
"type": "publicKey"
},
{
"name": "openOrders",
"type": "publicKey"
},
{
"name": "market",
"type": "publicKey"
},
{
"name": "serumDex",
"type": "publicKey"
},
{
"name": "targetOrders",
"type": "publicKey"
},
{
"name": "withdrawQueue",
"type": "publicKey"
},
{
"name": "tokenTempLp",
"type": "publicKey"
},
{
"name": "ammOwner",
"type": "publicKey"
},
{
"name": "lpAmount",
"type": "u64"
},
{
"name": "clientOrderId",
"type": "u64"
},
{
"name": "padding",
"type": {
"array": ["u64", 2]
}
}
]
}
}
],
"types": [
{
"name": "WithdrawDestToken",
"type": {
"kind": "struct",
"fields": [
{
"name": "withdrawAmount",
"type": "u64"
},
{
"name": "coinAmount",
"type": "u64"
},
{
"name": "pcAmount",
"type": "u64"
},
{
"name": "destTokenCoin",
"type": "publicKey"
},
{
"name": "destTokenPc",
"type": "publicKey"
}
]
}
},
{
"name": "WithdrawQueue",
"type": {
"kind": "struct",
"fields": [
{
"name": "owner",
"type": {
"array": ["u64", 4]
}
},
{
"name": "head",
"type": "u64"
},
{
"name": "count",
"type": "u64"
},
{
"name": "buf",
"type": {
"array": [
{
"defined": "WithdrawDestToken"
},
64
]
}
}
]
}
},
{
"name": "TargetOrder",
"type": {
"kind": "struct",
"fields": [
{
"name": "price",
"type": "u64"
},
{
"name": "vol",
"type": "u64"
}
]
}
},
{
"name": "OutPutData",
"type": {
"kind": "struct",
"fields": [
{
"name": "needTakePnlCoin",
"type": "u64"
},
{
"name": "needTakePnlPc",
"type": "u64"
},
{
"name": "totalPnlPc",
"type": "u64"
},
{
"name": "totalPnlCoin",
"type": "u64"
},
{
"name": "poolOpenTime",
"type": "u64"
},
{
"name": "punishPcAmount",
"type": "u64"
},
{
"name": "punishCoinAmount",
"type": "u64"
},
{
"name": "orderbookToInitTime",
"type": "u64"
},
{
"name": "swapCoinInAmount",
"type": "u128"
},
{
"name": "swapPcOutAmount",
"type": "u128"
},
{
"name": "swapTakePcFee",
"type": "u64"
},
{
"name": "swapPcInAmount",
"type": "u128"
},
{
"name": "swapCoinOutAmount",
"type": "u128"
},
{
"name": "swapTakeCoinFee",
"type": "u64"
}
]
}
},
{
"name": "AmmConfig",
"type": {
"kind": "struct",
"fields": [
{
"name": "pnlOwner",
"type": "publicKey"
},
{
"name": "cancelOwner",
"type": "publicKey"
},
{
"name": "pending1",
"type": {
"array": ["u64", 28]
}
},
{
"name": "pending2",
"type": {
"array": ["u64", 32]
}
}
]
}
},
{
"name": "LastOrderDistance",
"type": {
"kind": "struct",
"fields": [
{
"name": "lastOrderNumerator",
"type": "u64"
},
{
"name": "lastOrderDenominator",
"type": "u64"
}
]
}
},
{
"name": "NeedTake",
"type": {
"kind": "struct",
"fields": [
{
"name": "needTakePc",
"type": "u64"
},
{
"name": "needTakeCoin",
"type": "u64"
}
]
}
},
{
"name": "SwapInstructionBaseIn",
"type": {
"kind": "struct",
"fields": [
{
"name": "amountIn",
"type": "u64"
},
{
"name": "minimumAmountOut",
"type": "u64"
}
]
}
},
{
"name": "SwapInstructionBaseOut",
"type": {
"kind": "struct",
"fields": [
{
"name": "maxAmountIn",
"type": "u64"
},
{
"name": "amountOut",
"type": "u64"
}
]
}
}
],
"errors": [
{
"code": 0,
"name": "AlreadyInUse",
"msg": "AlreadyInUse"
},
{
"code": 1,
"name": "InvalidProgramAddress",
"msg": "InvalidProgramAddress"
},
{
"code": 2,
"name": "ExpectedMint",
"msg": "ExpectedMint"
},
{
"code": 3,
"name": "ExpectedAccount",
"msg": "ExpectedAccount"
},
{
"code": 4,
"name": "InvalidCoinVault",
"msg": "InvalidCoinVault"
},
{
"code": 5,
"name": "InvalidPCVault",
"msg": "InvalidPCVault"
},
{
"code": 6,
"name": "InvalidTokenLP",
"msg": "InvalidTokenLP"
},
{
"code": 7,
"name": "InvalidDestTokenCoin",
"msg": "InvalidDestTokenCoin"
},
{
"code": 8,
"name": "InvalidDestTokenPC",
"msg": "InvalidDestTokenPC"
},
{
"code": 9,
"name": "InvalidPoolMint",
"msg": "InvalidPoolMint"
},
{
"code": 10,
"name": "InvalidOpenOrders",
"msg": "InvalidOpenOrders"
},
{
"code": 11,
"name": "InvalidSerumMarket",
"msg": "InvalidSerumMarket"
},
{
"code": 12,
"name": "InvalidSerumProgram",
"msg": "InvalidSerumProgram"
},
{
"code": 13,
"name": "InvalidTargetOrders",
"msg": "InvalidTargetOrders"
},
{
"code": 14,
"name": "InvalidWithdrawQueue",
"msg": "InvalidWithdrawQueue"
},
{
"code": 15,
"name": "InvalidTempLp",
"msg": "InvalidTempLp"
},
{
"code": 16,
"name": "InvalidCoinMint",
"msg": "InvalidCoinMint"
},
{
"code": 17,
"name": "InvalidPCMint",
"msg": "InvalidPCMint"
},
{
"code": 18,
"name": "InvalidOwner",
"msg": "InvalidOwner"
},
{
"code": 19,
"name": "InvalidSupply",
"msg": "InvalidSupply"
},
{
"code": 20,
"name": "InvalidDelegate",
"msg": "InvalidDelegate"
},
{
"code": 21,
"name": "InvalidSignAccount",
"msg": "Invalid Sign Account"
},
{
"code": 22,
"name": "InvalidStatus",
"msg": "InvalidStatus"
},
{
"code": 23,
"name": "InvalidInstruction",
"msg": "Invalid instruction"
},
{
"code": 24,
"name": "WrongAccountsNumber",
"msg": "Wrong accounts number"
},
{
"code": 25,
"name": "WithdrawTransferBusy",
"msg": "Withdraw_transfer is busy"
},
{
"code": 26,
"name": "WithdrawQueueFull",
"msg": "WithdrawQueue is full"
},
{
"code": 27,
"name": "WithdrawQueueEmpty",
"msg": "WithdrawQueue is empty"
},
{
"code": 28,
"name": "InvalidParamsSet",
"msg": "Params Set is invalid"
},
{
"code": 29,
"name": "InvalidInput",
"msg": "InvalidInput"
},
{
"code": 30,
"name": "ExceededSlippage",
"msg": "instruction exceeds desired slippage limit"
},
{
"code": 31,
"name": "CalculationExRateFailure",
"msg": "CalculationExRateFailure"
},
{
"code": 32,
"name": "CheckedSubOverflow",
"msg": "Checked_Sub Overflow"
},
{
"code": 33,
"name": "CheckedAddOverflow",
"msg": "Checked_Add Overflow"
},
{
"code": 34,
"name": "CheckedMulOverflow",
"msg": "Checked_Mul Overflow"
},
{
"code": 35,
"name": "CheckedDivOverflow",
"msg": "Checked_Div Overflow"
},
{
"code": 36,
"name": "CheckedEmptyFunds",
"msg": "Empty Funds"
},
{
"code": 37,
"name": "CalcPnlError",
"msg": "Calc pnl error"
},
{
"code": 38,
"name": "InvalidSplTokenProgram",
"msg": "InvalidSplTokenProgram"
},
{
"code": 39,
"name": "TakePnlError",
"msg": "Take Pnl error"
},
{
"code": 40,
"name": "InsufficientFunds",
"msg": "Insufficient funds"
},
{
"code": 41,
"name": "ConversionFailure",
"msg": "Conversion to u64 failed with an overflow or underflow"
},
{
"code": 42,
"name": "InvalidUserToken",
"msg": "user token input does not match amm"
},
{
"code": 43,
"name": "InvalidSrmMint",
"msg": "InvalidSrmMint"
},
{
"code": 44,
"name": "InvalidSrmToken",
"msg": "InvalidSrmToken"
},
{
"code": 45,
"name": "TooManyOpenOrders",
"msg": "TooManyOpenOrders"
},
{
"code": 46,
"name": "OrderAtSlotIsPlaced",
"msg": "OrderAtSlotIsPlaced"
},
{
"code": 47,
"name": "InvalidSysProgramAddress",
"msg": "InvalidSysProgramAddress"
},
{
"code": 48,
"name": "InvalidFee",
"msg": "The provided fee does not match the program owner's constraints"
},
{
"code": 49,
"name": "RepeatCreateAmm",
"msg": "Repeat create amm about market"
},
{
"code": 50,
"name": "NotAllowZeroLP",
"msg": "Not allow Zero LP"
},
{
"code": 51,
"name": "InvalidCloseAuthority",
"msg": "Token account has a close authority"
},
{
"code": 52,
"name": "InvalidFreezeAuthority",
"msg": "Pool token mint has a freeze authority"
},
{
"code": 53,
"name": "InvalidReferPCMint",
"msg": "InvalidReferPCMint"
},
{
"code": 54,
"name": "InvalidConfigAccount",
"msg": "InvalidConfigAccount"
},
{
"code": 55,
"name": "RepeatCreateConfigAccount",
"msg": "Repeat create staking config account"
},
{
"code": 56,
"name": "UnknownAmmError",
"msg": "Unknown Amm Error"
}
],
"metadata": {
"instruction_selector_type": "index",
"address": "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"
}
}