CoolDEX IDL
The IDL is just an example and DOES NOT work with ANCHOR!
This page provides the Interface Description Language (IDL) for the CoolDEX contract. The IDL describes the contract's instructions, accounts, and error codes in a standard format.
{
"version": "1.0.0",
"name": "cooldex_amm",
"instructions": [
{
"name": "initialize2",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ataTokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "systemProgram",
"isMut": false,
"isSigner": false
},
{
"name": "rentSysvar",
"isMut": false,
"isSigner": false
},
{
"name": "ammInfo",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammLpMint",
"isMut": true,
"isSigner": false
},
{
"name": "ammCoinMint",
"isMut": false,
"isSigner": false
},
{
"name": "ammPcMint",
"isMut": false,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammConfig",
"isMut": false,
"isSigner": false
},
{
"name": "createFeeDestination",
"isMut": true,
"isSigner": false
},
{
"name": "marketInfo",
"isMut": false,
"isSigner": false
},
{
"name": "userWallet",
"isMut": true,
"isSigner": true
},
{
"name": "userTokenCoin",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenPc",
"isMut": true,
"isSigner": false
},
{
"name": "userTokenLp",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "nonce",
"type": "u8"
},
{
"name": "openTime",
"type": "u64"
},
{
"name": "initPcAmount",
"type": "u64"
},
{
"name": "initCoinAmount",
"type": "u64"
},
{
"name": "burnBp",
"type": "u16"
},
{
"name": "feeNumerator",
"type": "u16"
}
]
},
{
"name": "deposit",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ammInfo",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammLpMint",
"isMut": true,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceCoin",
"isMut": true,
"isSigner": false
},
{
"name": "userSourcePc",
"isMut": true,
"isSigner": false
},
{
"name": "userDestLp",
"isMut": true,
"isSigner": false
},
{
"name": "sourceOwner",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "maxCoinAmount",
"type": "u64"
},
{
"name": "maxPcAmount",
"type": "u64"
},
{
"name": "baseSide",
"type": "u64"
},
{
"name": "otherAmountMin",
"type": { "option": "u64" }
}
]
},
{
"name": "withdraw",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ammInfo",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammLpMint",
"isMut": true,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceLp",
"isMut": true,
"isSigner": false
},
{
"name": "userDestCoin",
"isMut": true,
"isSigner": false
},
{
"name": "userDestPc",
"isMut": true,
"isSigner": false
},
{
"name": "sourceLpOwner",
"isMut": false,
"isSigner": true
}
],
"args": [
{
"name": "amount",
"type": "u64"
},
{
"name": "minCoinAmount",
"type": { "option": "u64" }
},
{
"name": "minPcAmount",
"type": { "option": "u64" }
}
]
},
{
"name": "swapBaseIn",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ammInfo",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "userSource",
"isMut": true,
"isSigner": false
},
{
"name": "userDestination",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceOwner",
"isMut": false,
"isSigner": true
},
{
"name": "coinMint",
"isMut": true,
"isSigner": false
},
{
"name": "platformTaxWsolAccount",
"isMut": true,
"isSigner": false
},
{
"name": "cultContributionWsolAccount",
"isMut": true,
"isSigner": false
},
{
"name": "cultContributionTokenAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "amountIn",
"type": "u64"
},
{
"name": "minimumAmountOut",
"type": "u64"
}
]
},
{
"name": "swapBaseOut",
"accounts": [
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "ammInfo",
"isMut": true,
"isSigner": false
},
{
"name": "ammAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "ammCoinVault",
"isMut": true,
"isSigner": false
},
{
"name": "ammPcVault",
"isMut": true,
"isSigner": false
},
{
"name": "userSource",
"isMut": true,
"isSigner": false
},
{
"name": "userDestination",
"isMut": true,
"isSigner": false
},
{
"name": "userSourceOwner",
"isMut": false,
"isSigner": true
},
{
"name": "coinMint",
"isMut": true,
"isSigner": false
},
{
"name": "platformTaxWsolAccount",
"isMut": true,
"isSigner": false
},
{
"name": "cultContributionWsolAccount",
"isMut": true,
"isSigner": false
},
{
"name": "cultContributionTokenAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "maxAmountIn",
"type": "u64"
},
{
"name": "amountOut",
"type": "u64"
}
]
}
],
"accounts": [
{
"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": "stateData",
"type": {
"defined": "StateData"
}
},
{
"name": "coinVault",
"type": "publicKey"
},
{
"name": "pcVault",
"type": "publicKey"
},
{
"name": "coinVaultMint",
"type": "publicKey"
},
{
"name": "pcVaultMint",
"type": "publicKey"
},
{
"name": "lpMint",
"type": "publicKey"
},
{
"name": "openOrders",
"type": "publicKey"
},
{
"name": "market",
"type": "publicKey"
},
{
"name": "marketProgram",
"type": "publicKey"
},
{
"name": "targetOrders",
"type": "publicKey"
},
{
"name": "padding1",
"type": {
"array": ["u64", 8]
}
},
{
"name": "ammOwner",
"type": "publicKey"
},
{
"name": "lpAmount",
"type": "u64"
},
{
"name": "clientOrderId",
"type": "u64"
},
{
"name": "recentEpoch",
"type": "u64"
},
{
"name": "padding2",
"type": "u64"
},
{
"name": "isCoolpadToken",
"type": "bool"
},
{
"name": "burnRate",
"type": "u64"
}
]
}
},
{
"name": "TargetOrders",
"type": {
"kind": "struct",
"fields": [
{
"name": "ammId",
"type": "publicKey"
},
{
"name": "planOrderId",
"type": "u64"
},
{
"name": "targetX",
"type": "u128"
},
{
"name": "targetY",
"type": "u128"
}
]
}
},
{
"name": "AmmConfig",
"type": {
"kind": "struct",
"fields": [
{
"name": "status",
"type": "u64"
},
{
"name": "nonce",
"type": "u64"
},
{
"name": "ammOwner",
"type": "publicKey"
},
{
"name": "pnlOwner",
"type": "publicKey"
},
{
"name": "createPoolFee",
"type": "u64"
}
]
}
}
],
"types": [
{
"name": "AmmStatus",
"type": {
"kind": "enum",
"variants": [
{
"name": "Uninitialized"
},
{
"name": "Initialized"
},
{
"name": "Disabled"
},
{
"name": "OrderBookOnly"
},
{
"name": "WaitingTrade"
},
{
"name": "SwapOnly"
}
]
}
},
{
"name": "SwapDirection",
"type": {
"kind": "enum",
"variants": [
{
"name": "Coin2PC"
},
{
"name": "PC2Coin"
}
]
}
}
],
"errors": [
{
"code": 6000,
"name": "InvalidProgramAddress",
"msg": "Invalid program address"
},
{
"code": 6001,
"name": "AlreadyInUse",
"msg": "Swap account already in use"
},
{
"code": 6002,
"name": "InvalidOwner",
"msg": "Invalid owner"
},
{
"code": 6003,
"name": "InvalidSupply",
"msg": "Invalid supply"
},
{
"code": 6004,
"name": "InvalidDelegate",
"msg": "Invalid delegate"
},
{
"code": 6005,
"name": "InvalidInput",
"msg": "Invalid input"
},
{
"code": 6006,
"name": "InvalidOutput",
"msg": "Invalid output"
},
{
"code": 6007,
"name": "InsufficientFunds",
"msg": "Insufficient funds"
},
{
"code": 6008,
"name": "ExceededSlippage",
"msg": "Exceeded slippage tolerance"
},
{
"code": 6009,
"name": "InvalidStatus",
"msg": "Invalid status"
},
{
"code": 6010,
"name": "NotAllowZeroLP",
"msg": "Not allow zero LP"
},
{
"code": 6011,
"name": "InvalidFee",
"msg": "Invalid fee"
},
{
"code": 6012,
"name": "InvalidFreezeAuthority",
"msg": "Invalid freeze authority"
},
{
"code": 6013,
"name": "InvalidCloseAuthority",
"msg": "Invalid close authority"
},
{
"code": 6014,
"name": "InvalidCoinMint",
"msg": "Invalid coin mint"
},
{
"code": 6015,
"name": "InvalidPCMint",
"msg": "Invalid PC mint"
},
{
"code": 6016,
"name": "InvalidCoinVault",
"msg": "Invalid coin vault"
},
{
"code": 6017,
"name": "InvalidPCVault",
"msg": "Invalid PC vault"
},
{
"code": 6018,
"name": "InvalidTokenLP",
"msg": "Invalid LP token"
},
{
"code": 6019,
"name": "InvalidUserToken",
"msg": "Invalid user token"
},
{
"code": 6020,
"name": "OnlyBondingCurveIsAllowed",
"msg": "Only BondingCurve is allowed"
}
]
}
Last updated