Files
pumpfun-bonkfun-bot_github/idl/raydium_launchlab_idl.json
T
2025-08-02 14:21:16 +00:00

4304 lines
148 KiB
JSON

{
"address": "LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj",
"metadata": {
"name": "raydium_launchpad",
"version": "0.1.0",
"spec": "0.1.0",
"description": "Created with Anchor"
},
"instructions": [
{
"name": "buy_exact_in",
"docs": [
"Use the given amount of quote tokens to purchase base tokens.",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `amount_in` - Amount of quote token to purchase",
"* `minimum_amount_out` - Minimum amount of base token to receive (slippage protection)",
"* `share_fee_rate` - Fee rate for the share",
""
],
"discriminator": [
250,
234,
13,
123,
213,
156,
19,
236
],
"accounts": [
{
"name": "payer",
"docs": [
"The user performing the swap operation",
"Must sign the transaction and pay for fees"
],
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "global_config",
"docs": [
"Global configuration account containing protocol-wide settings",
"Used to read protocol fee rates and curve type"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform-wide settings",
"Used to read platform fee rate"
]
},
{
"name": "pool_state",
"docs": [
"The pool state account where the swap will be performed",
"Contains current pool parameters and balances"
],
"writable": true
},
{
"name": "user_base_token",
"docs": [
"The user's token account for base tokens (tokens being bought)",
"Will receive the output tokens after the swap"
],
"writable": true
},
{
"name": "user_quote_token",
"docs": [
"The user's token account for quote tokens (tokens being sold)",
"Will be debited for the input amount"
],
"writable": true
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be debited to send tokens to the user"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will receive the input tokens from the user"
],
"writable": true
},
{
"name": "base_token_mint",
"docs": [
"The mint of the base token",
"Used for transfer fee calculations if applicable"
]
},
{
"name": "quote_token_mint",
"docs": [
"The mint of the quote token"
]
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for base token transfers"
]
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for quote token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "event_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "program"
}
],
"args": [
{
"name": "amount_in",
"type": "u64"
},
{
"name": "minimum_amount_out",
"type": "u64"
},
{
"name": "share_fee_rate",
"type": "u64"
}
]
},
{
"name": "buy_exact_out",
"docs": [
"Use quote tokens to purchase the given amount of base tokens.",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `amount_out` - Amount of base token to receive",
"* `maximum_amount_in` - Maximum amount of quote token to purchase (slippage protection)",
"* `share_fee_rate` - Fee rate for the share"
],
"discriminator": [
24,
211,
116,
40,
105,
3,
153,
56
],
"accounts": [
{
"name": "payer",
"docs": [
"The user performing the swap operation",
"Must sign the transaction and pay for fees"
],
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "global_config",
"docs": [
"Global configuration account containing protocol-wide settings",
"Used to read protocol fee rates and curve type"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform-wide settings",
"Used to read platform fee rate"
]
},
{
"name": "pool_state",
"docs": [
"The pool state account where the swap will be performed",
"Contains current pool parameters and balances"
],
"writable": true
},
{
"name": "user_base_token",
"docs": [
"The user's token account for base tokens (tokens being bought)",
"Will receive the output tokens after the swap"
],
"writable": true
},
{
"name": "user_quote_token",
"docs": [
"The user's token account for quote tokens (tokens being sold)",
"Will be debited for the input amount"
],
"writable": true
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be debited to send tokens to the user"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will receive the input tokens from the user"
],
"writable": true
},
{
"name": "base_token_mint",
"docs": [
"The mint of the base token",
"Used for transfer fee calculations if applicable"
]
},
{
"name": "quote_token_mint",
"docs": [
"The mint of the quote token"
]
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for base token transfers"
]
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for quote token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "event_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "program"
}
],
"args": [
{
"name": "amount_out",
"type": "u64"
},
{
"name": "maximum_amount_in",
"type": "u64"
},
{
"name": "share_fee_rate",
"type": "u64"
}
]
},
{
"name": "claim_platform_fee",
"docs": [
"Claim platform fee",
"# Arguments",
"",
"* `ctx` - The context of accounts",
""
],
"discriminator": [
156,
39,
208,
135,
76,
237,
61,
72
],
"accounts": [
{
"name": "platform_fee_wallet",
"docs": [
"Only the wallet stored in platform_config can collect platform fees"
],
"writable": true,
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault and mint operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Account that stores the pool's state and parameters",
"PDA generated using POOL_SEED and both token mints"
],
"writable": true
},
{
"name": "platform_config",
"docs": [
"The platform config account"
]
},
{
"name": "quote_vault",
"writable": true
},
{
"name": "recipient_token_account",
"docs": [
"The address that receives the collected quote token fees"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "platform_fee_wallet"
},
{
"kind": "const",
"value": [
6,
221,
246,
225,
215,
101,
161,
147,
217,
203,
225,
70,
206,
235,
121,
172,
28,
180,
133,
237,
95,
91,
55,
145,
58,
140,
245,
133,
126,
255,
0,
169
]
},
{
"kind": "account",
"path": "quote_mint"
}
],
"program": {
"kind": "const",
"value": [
140,
151,
37,
143,
78,
36,
137,
241,
187,
61,
16,
41,
20,
142,
13,
131,
11,
90,
19,
153,
218,
255,
16,
132,
4,
142,
123,
216,
219,
233,
248,
89
]
}
}
},
{
"name": "quote_mint",
"docs": [
"The mint of quote token vault"
]
},
{
"name": "token_program",
"docs": [
"SPL program for input token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
},
{
"name": "associated_token_program",
"docs": [
"Required for associated token program"
],
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args": []
},
{
"name": "claim_vested_token",
"docs": [
"Claim vested token",
"# Arguments"
],
"discriminator": [
49,
33,
104,
30,
189,
157,
79,
35
],
"accounts": [
{
"name": "beneficiary",
"docs": [
"The beneficiary of the vesting account"
],
"writable": true,
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault and mint operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Account that stores the pool's state and parameters",
"PDA generated using POOL_SEED and both token mints"
],
"writable": true
},
{
"name": "vesting_record",
"docs": [
"The vesting record account"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
101,
115,
116,
105,
110,
103
]
},
{
"kind": "account",
"path": "pool_state"
},
{
"kind": "account",
"path": "beneficiary"
}
]
}
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be debited to send tokens to the user"
],
"writable": true
},
{
"name": "user_base_token",
"writable": true,
"signer": true
},
{
"name": "base_token_mint",
"docs": [
"The mint for the base token (token being sold)",
"Created in this instruction with specified decimals"
]
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for the base token",
"Must be the standard Token program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
},
{
"name": "associated_token_program",
"docs": [
"Required for associated token program"
],
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
}
],
"args": []
},
{
"name": "collect_fee",
"docs": [
"Collects accumulated fees from the pool",
"# Arguments",
"",
"* `ctx` - The context of accounts",
""
],
"discriminator": [
60,
173,
247,
103,
4,
93,
130,
48
],
"accounts": [
{
"name": "owner",
"docs": [
"Only protocol_fee_owner saved in global_config can collect protocol fee now"
],
"signer": true
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Pool state stores accumulated protocol fee amount"
],
"writable": true
},
{
"name": "global_config",
"docs": [
"Global config account stores owner"
]
},
{
"name": "quote_vault",
"docs": [
"The address that holds pool tokens for quote token"
],
"writable": true
},
{
"name": "quote_mint",
"docs": [
"The mint of quote token vault"
]
},
{
"name": "recipient_token_account",
"docs": [
"The address that receives the collected quote token fees"
],
"writable": true
},
{
"name": "token_program",
"docs": [
"SPL program for input token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"args": []
},
{
"name": "collect_migrate_fee",
"docs": [
"Collects migrate fees from the pool",
"# Arguments",
"",
"* `ctx` - The context of accounts",
""
],
"discriminator": [
255,
186,
150,
223,
235,
118,
201,
186
],
"accounts": [
{
"name": "owner",
"docs": [
"Only migrate_fee_owner saved in global_config can collect migrate fee now"
],
"signer": true
},
{
"name": "authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Pool state stores accumulated protocol fee amount"
],
"writable": true
},
{
"name": "global_config",
"docs": [
"Global config account stores owner"
]
},
{
"name": "quote_vault",
"docs": [
"The address that holds pool tokens for quote token"
],
"writable": true
},
{
"name": "quote_mint",
"docs": [
"The mint of quote token vault"
]
},
{
"name": "recipient_token_account",
"docs": [
"The address that receives the collected quote token fees"
],
"writable": true
},
{
"name": "token_program",
"docs": [
"SPL program for input token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
}
],
"args": []
},
{
"name": "create_config",
"docs": [
"Creates a new configuration",
"# Arguments",
"",
"* `ctx` - The accounts needed by instruction",
"* `curve_type` - The type of bonding curve (0: ConstantProduct)",
"* `index` - The index of config, there may be multiple config with the same curve type.",
"* `trade_fee_rate` - Trade fee rate, must be less than RATE_DENOMINATOR_VALUE",
""
],
"discriminator": [
201,
207,
243,
114,
75,
111,
47,
189
],
"accounts": [
{
"name": "owner",
"docs": [
"The protocol owner/admin account",
"Must match the predefined admin address",
"Has authority to create and modify protocol configurations"
],
"writable": true,
"signer": true,
"address": "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name": "global_config",
"docs": [
"Global configuration account that stores protocol-wide settings",
"PDA generated using GLOBAL_CONFIG_SEED, quote token mint, and curve type",
"Stores fee rates and protocol parameters"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
103,
108,
111,
98,
97,
108,
95,
99,
111,
110,
102,
105,
103
]
},
{
"kind": "account",
"path": "quote_token_mint"
},
{
"kind": "arg",
"path": "curve_type"
},
{
"kind": "arg",
"path": "index"
}
]
}
},
{
"name": "quote_token_mint",
"docs": [
"The mint address of the quote token (token used for buying)",
"This will be the standard token used for all pools with this config"
]
},
{
"name": "protocol_fee_owner",
"docs": [
"Account that will receive protocol fees"
]
},
{
"name": "migrate_fee_owner",
"docs": [
"Account that will receive migrate fees"
]
},
{
"name": "migrate_to_amm_wallet",
"docs": [
"The control wallet address for migrating to amm"
]
},
{
"name": "migrate_to_cpswap_wallet",
"docs": [
"The control wallet address for migrating to cpswap"
]
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "curve_type",
"type": "u8"
},
{
"name": "index",
"type": "u16"
},
{
"name": "migrate_fee",
"type": "u64"
},
{
"name": "trade_fee_rate",
"type": "u64"
}
]
},
{
"name": "create_platform_config",
"docs": [
"Create platform config account",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"# Fields",
"* `fee_rate` - Fee rate of the platform",
"* `name` - Name of the platform",
"* `web` - Website of the platform",
"* `img` - Image link of the platform",
""
],
"discriminator": [
176,
90,
196,
175,
253,
113,
220,
20
],
"accounts": [
{
"name": "platform_admin",
"docs": [
"The account paying for the initialization costs"
],
"writable": true,
"signer": true
},
{
"name": "platform_fee_wallet"
},
{
"name": "platform_nft_wallet"
},
{
"name": "platform_config",
"docs": [
"The platform config account"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
108,
97,
116,
102,
111,
114,
109,
95,
99,
111,
110,
102,
105,
103
]
},
{
"kind": "account",
"path": "platform_admin"
}
]
}
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "platform_params",
"type": {
"defined": {
"name": "PlatformParams"
}
}
}
]
},
{
"name": "create_vesting_account",
"docs": [
"Create vesting account",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `share` - The share amount of base token to be vested",
""
],
"discriminator": [
129,
178,
2,
13,
217,
172,
230,
218
],
"accounts": [
{
"name": "creator",
"docs": [
"The account paying for the initialization costs",
"This can be any account with sufficient SOL to cover the transaction"
],
"writable": true,
"signer": true
},
{
"name": "beneficiary",
"writable": true
},
{
"name": "pool_state",
"docs": [
"The pool state account"
],
"writable": true
},
{
"name": "vesting_record",
"docs": [
"The vesting record account"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
101,
115,
116,
105,
110,
103
]
},
{
"kind": "account",
"path": "pool_state"
},
{
"kind": "account",
"path": "beneficiary"
}
]
}
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "share_amount",
"type": "u64"
}
]
},
{
"name": "initialize",
"docs": [
"Initializes a new trading pool",
"# Arguments",
"",
"* `ctx` - The context of accounts containing pool and token information",
""
],
"discriminator": [
175,
175,
109,
31,
13,
152,
155,
237
],
"accounts": [
{
"name": "payer",
"docs": [
"The account paying for the initialization costs",
"This can be any account with sufficient SOL to cover the transaction"
],
"writable": true,
"signer": true
},
{
"name": "creator"
},
{
"name": "global_config",
"docs": [
"Global configuration account containing protocol-wide settings",
"Includes settings like quote token mint and fee parameters"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform info",
"Includes settings like the fee_rate, name, web, img of the platform"
]
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault and mint operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Account that stores the pool's state and parameters",
"PDA generated using POOL_SEED and both token mints"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108
]
},
{
"kind": "account",
"path": "base_mint"
},
{
"kind": "account",
"path": "quote_mint"
}
]
}
},
{
"name": "base_mint",
"docs": [
"The mint for the base token (token being sold)",
"Created in this instruction with specified decimals"
],
"writable": true,
"signer": true
},
{
"name": "quote_mint",
"docs": [
"The mint for the quote token (token used to buy)",
"Must match the quote_mint specified in global config"
]
},
{
"name": "base_vault",
"docs": [
"Token account that holds the pool's base tokens",
"PDA generated using POOL_VAULT_SEED"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
97,
117,
108,
116
]
},
{
"kind": "account",
"path": "pool_state"
},
{
"kind": "account",
"path": "base_mint"
}
]
}
},
{
"name": "quote_vault",
"docs": [
"Token account that holds the pool's quote tokens",
"PDA generated using POOL_VAULT_SEED"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
97,
117,
108,
116
]
},
{
"kind": "account",
"path": "pool_state"
},
{
"kind": "account",
"path": "quote_mint"
}
]
}
},
{
"name": "metadata_account",
"docs": [
"Account to store the base token's metadata",
"Created using Metaplex metadata program"
],
"writable": true
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for the base token",
"Must be the standard Token program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for the quote token"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "metadata_program",
"docs": [
"Metaplex Token Metadata program",
"Used to create metadata for the base token"
],
"address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
},
{
"name": "rent_program",
"docs": [
"Required for rent exempt calculations"
],
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "event_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "program"
}
],
"args": [
{
"name": "base_mint_param",
"type": {
"defined": {
"name": "MintParams"
}
}
},
{
"name": "curve_param",
"type": {
"defined": {
"name": "CurveParams"
}
}
},
{
"name": "vesting_param",
"type": {
"defined": {
"name": "VestingParams"
}
}
}
]
},
{
"name": "migrate_to_amm",
"docs": [
"# Arguments",
"",
"* `ctx` - The context of accounts",
""
],
"discriminator": [
207,
82,
192,
145,
254,
207,
145,
223
],
"accounts": [
{
"name": "payer",
"docs": [
"Only migrate_to_amm_wallet can migrate to cpswap pool",
"This signer must match the migrate_to_amm_wallet saved in global_config"
],
"writable": true,
"signer": true
},
{
"name": "base_mint",
"docs": [
"The mint for the base token (token being sold)"
]
},
{
"name": "quote_mint",
"docs": [
"The mint for the quote token (token used to buy)"
]
},
{
"name": "openbook_program",
"address": "srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"
},
{
"name": "market",
"docs": [
"Account created and asigned to openbook_program but not been initialized"
],
"writable": true
},
{
"name": "request_queue",
"docs": [
"Account created and asigned to openbook_program but not been initialized"
],
"writable": true
},
{
"name": "event_queue",
"docs": [
"Account created and asigned to openbook_program but not been initialized"
],
"writable": true
},
{
"name": "bids",
"docs": [
"Account created and asigned to openbook_program but not been initialized"
],
"writable": true
},
{
"name": "asks",
"docs": [
"Account created and asigned to openbook_program but not been initialized"
],
"writable": true
},
{
"name": "market_vault_signer"
},
{
"name": "market_base_vault",
"docs": [
"Token account that holds the market's base tokens"
],
"writable": true
},
{
"name": "market_quote_vault",
"docs": [
"Token account that holds the market's quote tokens"
],
"writable": true
},
{
"name": "amm_program",
"address": "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"
},
{
"name": "amm_pool",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
97,
109,
109,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
109,
109,
32,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_open_orders",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
111,
112,
101,
110,
95,
111,
114,
100,
101,
114,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_lp_mint",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
108,
112,
95,
109,
105,
110,
116,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_base_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
99,
111,
105,
110,
95,
118,
97,
117,
108,
116,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_quote_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
112,
99,
95,
118,
97,
117,
108,
116,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_target_orders",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "amm_program"
},
{
"kind": "account",
"path": "market"
},
{
"kind": "const",
"value": [
116,
97,
114,
103,
101,
116,
95,
97,
115,
115,
111,
99,
105,
97,
116,
101,
100,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_config",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
97,
109,
109,
95,
99,
111,
110,
102,
105,
103,
95,
97,
99,
99,
111,
117,
110,
116,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "amm_program"
}
}
},
{
"name": "amm_create_fee_destination",
"writable": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Account that stores the pool's state and parameters",
"PDA generated using POOL_SEED and both token mints"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108
]
},
{
"kind": "account",
"path": "base_mint"
},
{
"kind": "account",
"path": "quote_mint"
}
]
}
},
{
"name": "global_config",
"docs": [
"Global config account stores owner"
]
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be fully drained during migration"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will be fully drained during migration"
],
"writable": true
},
{
"name": "pool_lp_token",
"writable": true
},
{
"name": "spl_token_program",
"docs": [
"SPL Token program for the base token",
"Must be the standard Token program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"docs": [
"Program to create an ATA for receiving fee NFT"
],
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
},
{
"name": "rent_program",
"docs": [
"Required for rent exempt calculations"
],
"address": "SysvarRent111111111111111111111111111111111"
}
],
"args": [
{
"name": "base_lot_size",
"type": "u64"
},
{
"name": "quote_lot_size",
"type": "u64"
},
{
"name": "market_vault_signer_nonce",
"type": "u8"
}
]
},
{
"name": "migrate_to_cpswap",
"docs": [
"# Arguments",
"",
"* `ctx` - The context of accounts",
""
],
"discriminator": [
136,
92,
200,
103,
28,
218,
144,
140
],
"accounts": [
{
"name": "payer",
"docs": [
"Only migrate_to_cpswap_wallet can migrate to cpswap pool",
"This signer must match the migrate_to_cpswap_wallet saved in global_config"
],
"writable": true,
"signer": true
},
{
"name": "base_mint",
"docs": [
"The mint for the base token (token being sold)"
]
},
{
"name": "quote_mint",
"docs": [
"The mint for the quote token (token used to buy)"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform-wide settings",
"Used to read platform fee rate"
]
},
{
"name": "cpswap_program",
"address": "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"
},
{
"name": "cpswap_pool",
"docs": [
"PDA account:",
"seeds = [",
"b\"pool\",",
"cpswap_config.key().as_ref(),",
"token_0_mint.key().as_ref(),",
"token_1_mint.key().as_ref(),",
"],",
"seeds::program = cpswap_program,",
"",
"Or random account: must be signed by cli"
],
"writable": true
},
{
"name": "cpswap_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
110,
100,
95,
108,
112,
95,
109,
105,
110,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "cpswap_program"
}
}
},
{
"name": "cpswap_lp_mint",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
108,
112,
95,
109,
105,
110,
116
]
},
{
"kind": "account",
"path": "cpswap_pool"
}
],
"program": {
"kind": "account",
"path": "cpswap_program"
}
}
},
{
"name": "cpswap_base_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
97,
117,
108,
116
]
},
{
"kind": "account",
"path": "cpswap_pool"
},
{
"kind": "account",
"path": "base_mint"
}
],
"program": {
"kind": "account",
"path": "cpswap_program"
}
}
},
{
"name": "cpswap_quote_vault",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108,
95,
118,
97,
117,
108,
116
]
},
{
"kind": "account",
"path": "cpswap_pool"
},
{
"kind": "account",
"path": "quote_mint"
}
],
"program": {
"kind": "account",
"path": "cpswap_program"
}
}
},
{
"name": "cpswap_config"
},
{
"name": "cpswap_create_pool_fee",
"writable": true
},
{
"name": "cpswap_observation",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
111,
98,
115,
101,
114,
118,
97,
116,
105,
111,
110
]
},
{
"kind": "account",
"path": "cpswap_pool"
}
],
"program": {
"kind": "account",
"path": "cpswap_program"
}
}
},
{
"name": "lock_program",
"address": "LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"
},
{
"name": "lock_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
108,
111,
99,
107,
95,
99,
112,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121,
95,
115,
101,
101,
100
]
}
],
"program": {
"kind": "account",
"path": "lock_program"
}
}
},
{
"name": "lock_lp_vault",
"writable": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "pool_state",
"docs": [
"Account that stores the pool's state and parameters",
"PDA generated using POOL_SEED and both token mints"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
111,
111,
108
]
},
{
"kind": "account",
"path": "base_mint"
},
{
"kind": "account",
"path": "quote_mint"
}
]
}
},
{
"name": "global_config",
"docs": [
"Global config account stores owner"
]
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be fully drained during migration"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will be fully drained during migration"
],
"writable": true
},
{
"name": "pool_lp_token",
"writable": true
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for the base token",
"Must be the standard Token program"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for the quote token"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "associated_token_program",
"docs": [
"Program to create an ATA for receiving fee NFT"
],
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
},
{
"name": "system_program",
"docs": [
"Required for account creation"
],
"address": "11111111111111111111111111111111"
},
{
"name": "rent_program",
"docs": [
"Required for rent exempt calculations"
],
"address": "SysvarRent111111111111111111111111111111111"
},
{
"name": "metadata_program",
"docs": [
"Program to create NFT metadata accunt"
],
"address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
}
],
"args": []
},
{
"name": "sell_exact_in",
"docs": [
"Use the given amount of base tokens to sell for quote tokens.",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `amount_in` - Amount of base token to sell",
"* `minimum_amount_out` - Minimum amount of quote token to receive (slippage protection)",
"* `share_fee_rate` - Fee rate for the share",
""
],
"discriminator": [
149,
39,
222,
155,
211,
124,
152,
26
],
"accounts": [
{
"name": "payer",
"docs": [
"The user performing the swap operation",
"Must sign the transaction and pay for fees"
],
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "global_config",
"docs": [
"Global configuration account containing protocol-wide settings",
"Used to read protocol fee rates and curve type"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform-wide settings",
"Used to read platform fee rate"
]
},
{
"name": "pool_state",
"docs": [
"The pool state account where the swap will be performed",
"Contains current pool parameters and balances"
],
"writable": true
},
{
"name": "user_base_token",
"docs": [
"The user's token account for base tokens (tokens being bought)",
"Will receive the output tokens after the swap"
],
"writable": true
},
{
"name": "user_quote_token",
"docs": [
"The user's token account for quote tokens (tokens being sold)",
"Will be debited for the input amount"
],
"writable": true
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be debited to send tokens to the user"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will receive the input tokens from the user"
],
"writable": true
},
{
"name": "base_token_mint",
"docs": [
"The mint of the base token",
"Used for transfer fee calculations if applicable"
]
},
{
"name": "quote_token_mint",
"docs": [
"The mint of the quote token"
]
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for base token transfers"
]
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for quote token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "event_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "program"
}
],
"args": [
{
"name": "amount_in",
"type": "u64"
},
{
"name": "minimum_amount_out",
"type": "u64"
},
{
"name": "share_fee_rate",
"type": "u64"
}
]
},
{
"name": "sell_exact_out",
"docs": [
"Sell base tokens for the given amount of quote tokens.",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `amount_out` - Amount of quote token to receive",
"* `maximum_amount_in` - Maximum amount of base token to purchase (slippage protection)",
"* `share_fee_rate` - Fee rate for the share",
""
],
"discriminator": [
95,
200,
71,
34,
8,
9,
11,
166
],
"accounts": [
{
"name": "payer",
"docs": [
"The user performing the swap operation",
"Must sign the transaction and pay for fees"
],
"signer": true
},
{
"name": "authority",
"docs": [
"PDA that acts as the authority for pool vault operations",
"Generated using AUTH_SEED"
],
"pda": {
"seeds": [
{
"kind": "const",
"value": [
118,
97,
117,
108,
116,
95,
97,
117,
116,
104,
95,
115,
101,
101,
100
]
}
]
}
},
{
"name": "global_config",
"docs": [
"Global configuration account containing protocol-wide settings",
"Used to read protocol fee rates and curve type"
]
},
{
"name": "platform_config",
"docs": [
"Platform configuration account containing platform-wide settings",
"Used to read platform fee rate"
]
},
{
"name": "pool_state",
"docs": [
"The pool state account where the swap will be performed",
"Contains current pool parameters and balances"
],
"writable": true
},
{
"name": "user_base_token",
"docs": [
"The user's token account for base tokens (tokens being bought)",
"Will receive the output tokens after the swap"
],
"writable": true
},
{
"name": "user_quote_token",
"docs": [
"The user's token account for quote tokens (tokens being sold)",
"Will be debited for the input amount"
],
"writable": true
},
{
"name": "base_vault",
"docs": [
"The pool's vault for base tokens",
"Will be debited to send tokens to the user"
],
"writable": true
},
{
"name": "quote_vault",
"docs": [
"The pool's vault for quote tokens",
"Will receive the input tokens from the user"
],
"writable": true
},
{
"name": "base_token_mint",
"docs": [
"The mint of the base token",
"Used for transfer fee calculations if applicable"
]
},
{
"name": "quote_token_mint",
"docs": [
"The mint of the quote token"
]
},
{
"name": "base_token_program",
"docs": [
"SPL Token program for base token transfers"
]
},
{
"name": "quote_token_program",
"docs": [
"SPL Token program for quote token transfers"
],
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"name": "event_authority",
"pda": {
"seeds": [
{
"kind": "const",
"value": [
95,
95,
101,
118,
101,
110,
116,
95,
97,
117,
116,
104,
111,
114,
105,
116,
121
]
}
]
}
},
{
"name": "program"
}
],
"args": [
{
"name": "amount_out",
"type": "u64"
},
{
"name": "maximum_amount_in",
"type": "u64"
},
{
"name": "share_fee_rate",
"type": "u64"
}
]
},
{
"name": "update_config",
"docs": [
"Updates configuration parameters",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `param` - Parameter to update:",
"- 0: Update trade_fee_rate",
"- 1: Update fee owner",
"* `value` - New value for the selected parameter",
""
],
"discriminator": [
29,
158,
252,
191,
10,
83,
219,
99
],
"accounts": [
{
"name": "owner",
"docs": [
"The global config owner or admin"
],
"signer": true,
"address": "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ"
},
{
"name": "global_config",
"docs": [
"Global config account to be changed"
],
"writable": true
}
],
"args": [
{
"name": "param",
"type": "u8"
},
{
"name": "value",
"type": "u64"
}
]
},
{
"name": "update_platform_config",
"docs": [
"Update platform config",
"# Arguments",
"",
"* `ctx` - The context of accounts",
"* `param` - Parameter to update",
""
],
"discriminator": [
195,
60,
76,
129,
146,
45,
67,
143
],
"accounts": [
{
"name": "platform_admin",
"docs": [
"The account paying for the initialization costs"
],
"signer": true
},
{
"name": "platform_config",
"docs": [
"Platform config account to be changed"
],
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
112,
108,
97,
116,
102,
111,
114,
109,
95,
99,
111,
110,
102,
105,
103
]
},
{
"kind": "account",
"path": "platform_admin"
}
]
}
}
],
"args": [
{
"name": "param",
"type": {
"defined": {
"name": "PlatformConfigParam"
}
}
}
]
}
],
"accounts": [
{
"name": "GlobalConfig",
"discriminator": [
149,
8,
156,
202,
160,
252,
176,
217
]
},
{
"name": "PlatformConfig",
"discriminator": [
160,
78,
128,
0,
248,
83,
230,
160
]
},
{
"name": "PoolState",
"discriminator": [
247,
237,
227,
245,
215,
195,
222,
70
]
},
{
"name": "VestingRecord",
"discriminator": [
106,
243,
221,
205,
230,
126,
85,
83
]
}
],
"events": [
{
"name": "ClaimVestedEvent",
"discriminator": [
21,
194,
114,
87,
120,
211,
226,
32
]
},
{
"name": "CreateVestingEvent",
"discriminator": [
150,
152,
11,
179,
52,
210,
191,
125
]
},
{
"name": "PoolCreateEvent",
"discriminator": [
151,
215,
226,
9,
118,
161,
115,
174
]
},
{
"name": "TradeEvent",
"discriminator": [
189,
219,
127,
211,
78,
230,
97,
238
]
}
],
"errors": [
{
"code": 6000,
"name": "NotApproved",
"msg": "Not approved"
},
{
"code": 6001,
"name": "InvalidOwner",
"msg": "Input account owner is not the program address"
},
{
"code": 6002,
"name": "InvalidInput",
"msg": "InvalidInput"
},
{
"code": 6003,
"name": "InputNotMatchCurveConfig",
"msg": "The input params are not match with curve type in config"
},
{
"code": 6004,
"name": "ExceededSlippage",
"msg": "Exceeds desired slippage limit"
},
{
"code": 6005,
"name": "PoolFunding",
"msg": "Pool funding"
},
{
"code": 6006,
"name": "PoolMigrated",
"msg": "Pool migrated"
},
{
"code": 6007,
"name": "MigrateTypeNotMatch",
"msg": "Migrate type not match"
},
{
"code": 6008,
"name": "MathOverflow",
"msg": "Math overflow"
},
{
"code": 6009,
"name": "NoAssetsToCollect",
"msg": "No assets to collect"
},
{
"code": 6010,
"name": "VestingRatioTooHigh",
"msg": "Vesting ratio too high"
},
{
"code": 6011,
"name": "VestingSettingEnded",
"msg": "Vesting setting ended"
},
{
"code": 6012,
"name": "VestingNotStarted",
"msg": "Vesting not started"
},
{
"code": 6013,
"name": "NoVestingSchedule",
"msg": "No vesting schedule"
},
{
"code": 6014,
"name": "InvalidPlatformInfo",
"msg": "The platform info input is invalid"
},
{
"code": 6015,
"name": "PoolNotMigrated",
"msg": "Pool not migrated"
}
],
"types": [
{
"name": "ClaimVestedEvent",
"docs": [
"Emitted when vesting token claimed by beneficiary"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "pool_state",
"type": "pubkey"
},
{
"name": "beneficiary",
"type": "pubkey"
},
{
"name": "claim_amount",
"type": "u64"
}
]
}
},
{
"name": "ConstantCurve",
"type": {
"kind": "struct",
"fields": [
{
"name": "supply",
"type": "u64"
},
{
"name": "total_base_sell",
"type": "u64"
},
{
"name": "total_quote_fund_raising",
"type": "u64"
},
{
"name": "migrate_type",
"type": "u8"
}
]
}
},
{
"name": "CreateVestingEvent",
"docs": [
"Emitted when vest_account created"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "pool_state",
"type": "pubkey"
},
{
"name": "beneficiary",
"type": "pubkey"
},
{
"name": "share_amount",
"type": "u64"
}
]
}
},
{
"name": "CurveParams",
"type": {
"kind": "enum",
"variants": [
{
"name": "Constant",
"fields": [
{
"name": "data",
"type": {
"defined": {
"name": "ConstantCurve"
}
}
}
]
},
{
"name": "Fixed",
"fields": [
{
"name": "data",
"type": {
"defined": {
"name": "FixedCurve"
}
}
}
]
},
{
"name": "Linear",
"fields": [
{
"name": "data",
"type": {
"defined": {
"name": "LinearCurve"
}
}
}
]
}
]
}
},
{
"name": "FixedCurve",
"type": {
"kind": "struct",
"fields": [
{
"name": "supply",
"type": "u64"
},
{
"name": "total_quote_fund_raising",
"type": "u64"
},
{
"name": "migrate_type",
"type": "u8"
}
]
}
},
{
"name": "GlobalConfig",
"docs": [
"Holds the current owner of the factory"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "epoch",
"docs": [
"Account update epoch"
],
"type": "u64"
},
{
"name": "curve_type",
"docs": [
"0: Constant Product Curve",
"1: Fixed Price Curve",
"2: Linear Price Curve"
],
"type": "u8"
},
{
"name": "index",
"docs": [
"Config index"
],
"type": "u16"
},
{
"name": "migrate_fee",
"docs": [
"The fee of migrate to amm"
],
"type": "u64"
},
{
"name": "trade_fee_rate",
"docs": [
"The trade fee rate, denominated in hundredths of a bip (10^-6)"
],
"type": "u64"
},
{
"name": "max_share_fee_rate",
"docs": [
"The maximum share fee rate, denominated in hundredths of a bip (10^-6)"
],
"type": "u64"
},
{
"name": "min_base_supply",
"docs": [
"The minimum base supply, the value without decimals"
],
"type": "u64"
},
{
"name": "max_lock_rate",
"docs": [
"The maximum lock rate, denominated in hundredths of a bip (10^-6)"
],
"type": "u64"
},
{
"name": "min_base_sell_rate",
"docs": [
"The minimum base sell rate, denominated in hundredths of a bip (10^-6)"
],
"type": "u64"
},
{
"name": "min_base_migrate_rate",
"docs": [
"The minimum base migrate rate, denominated in hundredths of a bip (10^-6)"
],
"type": "u64"
},
{
"name": "min_quote_fund_raising",
"docs": [
"The minimum quote fund raising, the value with decimals"
],
"type": "u64"
},
{
"name": "quote_mint",
"docs": [
"Mint information for quote token"
],
"type": "pubkey"
},
{
"name": "protocol_fee_owner",
"docs": [
"Protocol Fee owner"
],
"type": "pubkey"
},
{
"name": "migrate_fee_owner",
"docs": [
"Migrate Fee owner"
],
"type": "pubkey"
},
{
"name": "migrate_to_amm_wallet",
"docs": [
"Migrate to amm control wallet"
],
"type": "pubkey"
},
{
"name": "migrate_to_cpswap_wallet",
"docs": [
"Migrate to cpswap wallet"
],
"type": "pubkey"
},
{
"name": "padding",
"docs": [
"padding for future updates"
],
"type": {
"array": [
"u64",
16
]
}
}
]
}
},
{
"name": "LinearCurve",
"type": {
"kind": "struct",
"fields": [
{
"name": "supply",
"type": "u64"
},
{
"name": "total_quote_fund_raising",
"type": "u64"
},
{
"name": "migrate_type",
"type": "u8"
}
]
}
},
{
"name": "MigrateNftInfo",
"docs": [
"Represents the parameters for initializing a platform config account(Only support MigrateType::CPSWAP)",
"# Fields",
"* `platform_scale` - Scale of the platform liquidity quantity rights will be converted into NFT",
"* `creator_scale` - Scale of the token creator liquidity quantity rights will be converted into NFT",
"* `burn_scale` - Scale of liquidity directly to burn",
"",
"* platform_scale + creator_scale + burn_scale = RATE_DENOMINATOR_VALUE"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "platform_scale",
"type": "u64"
},
{
"name": "creator_scale",
"type": "u64"
},
{
"name": "burn_scale",
"type": "u64"
}
]
}
},
{
"name": "MintParams",
"docs": [
"Represents the parameters for initializing a new token mint",
"# Fields",
"* `decimals` - Number of decimal places for the token",
"* `name` - Name of the token",
"* `symbol` - Symbol/ticker of the token",
"* `uri` - URI pointing to token metadata"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "decimals",
"type": "u8"
},
{
"name": "name",
"type": "string"
},
{
"name": "symbol",
"type": "string"
},
{
"name": "uri",
"type": "string"
}
]
}
},
{
"name": "PlatformConfig",
"type": {
"kind": "struct",
"fields": [
{
"name": "epoch",
"docs": [
"The epoch for update interval"
],
"type": "u64"
},
{
"name": "platform_fee_wallet",
"docs": [
"The platform fee wallet"
],
"type": "pubkey"
},
{
"name": "platform_nft_wallet",
"docs": [
"The platform nft wallet to receive the platform NFT after migration if platform_scale is not 0(Only support MigrateType::CPSWAP)"
],
"type": "pubkey"
},
{
"name": "platform_scale",
"docs": [
"Scale of the platform liquidity quantity rights will be converted into NFT(Only support MigrateType::CPSWAP)"
],
"type": "u64"
},
{
"name": "creator_scale",
"docs": [
"Scale of the token creator liquidity quantity rights will be converted into NFT(Only support MigrateType::CPSWAP)"
],
"type": "u64"
},
{
"name": "burn_scale",
"docs": [
"Scale of liquidity directly to burn"
],
"type": "u64"
},
{
"name": "fee_rate",
"docs": [
"The platform fee rate"
],
"type": "u64"
},
{
"name": "name",
"docs": [
"The platform name"
],
"type": {
"array": [
"u8",
64
]
}
},
{
"name": "web",
"docs": [
"The platform website"
],
"type": {
"array": [
"u8",
256
]
}
},
{
"name": "img",
"docs": [
"The platform img link"
],
"type": {
"array": [
"u8",
256
]
}
},
{
"name": "padding",
"docs": [
"padding for future updates"
],
"type": {
"array": [
"u8",
256
]
}
}
]
}
},
{
"name": "PlatformConfigParam",
"type": {
"kind": "enum",
"variants": [
{
"name": "FeeWallet",
"fields": [
"pubkey"
]
},
{
"name": "NFTWallet",
"fields": [
"pubkey"
]
},
{
"name": "MigrateNftInfo",
"fields": [
{
"defined": {
"name": "MigrateNftInfo"
}
}
]
},
{
"name": "FeeRate",
"fields": [
"u64"
]
},
{
"name": "Name",
"fields": [
"string"
]
},
{
"name": "Web",
"fields": [
"string"
]
},
{
"name": "Img",
"fields": [
"string"
]
}
]
}
},
{
"name": "PlatformParams",
"docs": [
"Represents the parameters for initializing a platform config account",
"# Fields",
"* `migrate_nft_info` - The platform configures liquidity info during migration(Only support MigrateType::CPSWAP)",
"* `fee_rate` - Fee rate of the platform",
"* `name` - Name of the platform",
"* `web` - Website of the platform",
"* `img` - Image link of the platform"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "migrate_nft_info",
"type": {
"defined": {
"name": "MigrateNftInfo"
}
}
},
{
"name": "fee_rate",
"type": "u64"
},
{
"name": "name",
"type": "string"
},
{
"name": "web",
"type": "string"
},
{
"name": "img",
"type": "string"
}
]
}
},
{
"name": "PoolCreateEvent",
"docs": [
"Emitted when pool created"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "pool_state",
"type": "pubkey"
},
{
"name": "creator",
"type": "pubkey"
},
{
"name": "config",
"type": "pubkey"
},
{
"name": "base_mint_param",
"type": {
"defined": {
"name": "MintParams"
}
}
},
{
"name": "curve_param",
"type": {
"defined": {
"name": "CurveParams"
}
}
},
{
"name": "vesting_param",
"type": {
"defined": {
"name": "VestingParams"
}
}
}
]
}
},
{
"name": "PoolState",
"docs": [
"Represents the state of a trading pool in the protocol",
"Stores all essential information about pool balances, fees, and configuration"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "epoch",
"docs": [
"Account update epoch"
],
"type": "u64"
},
{
"name": "auth_bump",
"docs": [
"Bump seed used for PDA address derivation"
],
"type": "u8"
},
{
"name": "status",
"docs": [
"Current status of the pool",
"* 0: Pool is funding",
"* 1: Pool funding is end, waiting for migration",
"* 2: Pool migration is done"
],
"type": "u8"
},
{
"name": "base_decimals",
"docs": [
"Decimals of the pool base token"
],
"type": "u8"
},
{
"name": "quote_decimals",
"docs": [
"Decimals of the pool quote token"
],
"type": "u8"
},
{
"name": "migrate_type",
"docs": [
"Migrate to AMM or CpSwap"
],
"type": "u8"
},
{
"name": "supply",
"docs": [
"Supply of the pool base token"
],
"type": "u64"
},
{
"name": "total_base_sell",
"docs": [
"Total sell amount of the base token"
],
"type": "u64"
},
{
"name": "virtual_base",
"docs": [
"For different curves, virtual_base and virtual_quote have different meanings",
"For constant product curve, virtual_base and virtual_quote are virtual liquidity, virtual_quote/virtual_base is the initial price",
"For linear price curve, virtual_base is the price slope parameter a, virtual_quote has no effect",
"For fixed price curve, virtual_quote/virtual_base is the initial price"
],
"type": "u64"
},
{
"name": "virtual_quote",
"type": "u64"
},
{
"name": "real_base",
"docs": [
"Actual base token amount in the pool",
"Represents the real tokens available for trading"
],
"type": "u64"
},
{
"name": "real_quote",
"docs": [
"Actual quote token amount in the pool",
"Represents the real tokens available for trading"
],
"type": "u64"
},
{
"name": "total_quote_fund_raising",
"docs": [
"The total quote fund raising of the pool"
],
"type": "u64"
},
{
"name": "quote_protocol_fee",
"docs": [
"Accumulated trading fees in quote tokens",
"Can be collected by the protocol fee owner"
],
"type": "u64"
},
{
"name": "platform_fee",
"docs": [
"Accumulated platform fees in quote tokens",
"Can be collected by the platform wallet stored in platform config"
],
"type": "u64"
},
{
"name": "migrate_fee",
"docs": [
"The fee of migrate to amm"
],
"type": "u64"
},
{
"name": "vesting_schedule",
"docs": [
"Vesting schedule for the base token"
],
"type": {
"defined": {
"name": "VestingSchedule"
}
}
},
{
"name": "global_config",
"docs": [
"Public key of the global configuration account",
"Contains protocol-wide settings this pool adheres to"
],
"type": "pubkey"
},
{
"name": "platform_config",
"docs": [
"Public key of the platform configuration account",
"Contains platform-wide settings this pool adheres to"
],
"type": "pubkey"
},
{
"name": "base_mint",
"docs": [
"Public key of the base mint address"
],
"type": "pubkey"
},
{
"name": "quote_mint",
"docs": [
"Public key of the quote mint address"
],
"type": "pubkey"
},
{
"name": "base_vault",
"docs": [
"Public key of the base token vault",
"Holds the actual base tokens owned by the pool"
],
"type": "pubkey"
},
{
"name": "quote_vault",
"docs": [
"Public key of the quote token vault",
"Holds the actual quote tokens owned by the pool"
],
"type": "pubkey"
},
{
"name": "creator",
"docs": [
"The creator of base token"
],
"type": "pubkey"
},
{
"name": "padding",
"docs": [
"padding for future updates"
],
"type": {
"array": [
"u64",
8
]
}
}
]
}
},
{
"name": "PoolStatus",
"docs": [
"Represents the different states a pool can be in",
"* Fund - Initial state where pool is accepting funds",
"* Migrate - Pool funding has ended and waiting for migration",
"* Trade - Pool migration is complete and amm trading is enabled"
],
"type": {
"kind": "enum",
"variants": [
{
"name": "Fund"
},
{
"name": "Migrate"
},
{
"name": "Trade"
}
]
}
},
{
"name": "TradeDirection",
"docs": [
"Specifies the direction of a trade in the bonding curve",
"This is important because curves can treat tokens differently through weights or offsets"
],
"type": {
"kind": "enum",
"variants": [
{
"name": "Buy"
},
{
"name": "Sell"
}
]
}
},
{
"name": "TradeEvent",
"docs": [
"Emitted when trade process"
],
"type": {
"kind": "struct",
"fields": [
{
"name": "pool_state",
"type": "pubkey"
},
{
"name": "total_base_sell",
"type": "u64"
},
{
"name": "virtual_base",
"type": "u64"
},
{
"name": "virtual_quote",
"type": "u64"
},
{
"name": "real_base_before",
"type": "u64"
},
{
"name": "real_quote_before",
"type": "u64"
},
{
"name": "real_base_after",
"type": "u64"
},
{
"name": "real_quote_after",
"type": "u64"
},
{
"name": "amount_in",
"type": "u64"
},
{
"name": "amount_out",
"type": "u64"
},
{
"name": "protocol_fee",
"type": "u64"
},
{
"name": "platform_fee",
"type": "u64"
},
{
"name": "share_fee",
"type": "u64"
},
{
"name": "trade_direction",
"type": {
"defined": {
"name": "TradeDirection"
}
}
},
{
"name": "pool_status",
"type": {
"defined": {
"name": "PoolStatus"
}
}
}
]
}
},
{
"name": "VestingParams",
"type": {
"kind": "struct",
"fields": [
{
"name": "total_locked_amount",
"type": "u64"
},
{
"name": "cliff_period",
"type": "u64"
},
{
"name": "unlock_period",
"type": "u64"
}
]
}
},
{
"name": "VestingRecord",
"type": {
"kind": "struct",
"fields": [
{
"name": "epoch",
"docs": [
"Account update epoch"
],
"type": "u64"
},
{
"name": "pool",
"docs": [
"The pool state account"
],
"type": "pubkey"
},
{
"name": "beneficiary",
"docs": [
"The beneficiary of the vesting account"
],
"type": "pubkey"
},
{
"name": "claimed_amount",
"docs": [
"The amount of tokens claimed"
],
"type": "u64"
},
{
"name": "token_share_amount",
"docs": [
"The share amount of the token to be vested"
],
"type": "u64"
},
{
"name": "padding",
"docs": [
"padding for future updates"
],
"type": {
"array": [
"u64",
8
]
}
}
]
}
},
{
"name": "VestingSchedule",
"type": {
"kind": "struct",
"fields": [
{
"name": "total_locked_amount",
"type": "u64"
},
{
"name": "cliff_period",
"type": "u64"
},
{
"name": "unlock_period",
"type": "u64"
},
{
"name": "start_time",
"type": "u64"
},
{
"name": "allocated_share_amount",
"docs": [
"Total allocated share amount of the base token, not greater than total_locked_amount"
],
"type": "u64"
}
]
}
}
]
}