{ "address": "HpNfyc2Saw7RKkQd8nEL4khUcuPhQ7WwY1B2qjx8jxFq", "metadata": { "name": "amm_v3", "version": "0.1.0", "spec": "0.1.0", "description": "Anchor client and source for Pancake concentrated liquidity AMM" }, "instructions": [ { "name": "close_position", "docs": [ "Close the user's position and NFT account. If the NFT mint belongs to token2022, it will also be closed and the funds returned to the NFT owner.", "", "# Arguments", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 123, 134, 81, 0, 49, 68, 98, 98 ], "accounts": [ { "name": "nft_owner", "docs": [ "The position nft owner" ], "writable": true, "signer": true }, { "name": "position_nft_mint", "docs": [ "Mint address bound to the personal position." ], "writable": true }, { "name": "position_nft_account", "docs": [ "User token account where position NFT be minted to" ], "writable": true }, { "name": "personal_position", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "position_nft_mint" } ] } }, { "name": "system_program", "docs": [ "System program to close the position state account" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "Token/Token2022 program to close token/mint account" ] } ], "args": [] }, { "name": "collect_fund_fee", "docs": [ "Collect the fund fee accrued to the pool", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1", "* `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0", "" ], "discriminator": [ 167, 138, 78, 149, 223, 194, 6, 126 ], "accounts": [ { "name": "owner", "docs": [ "Only admin or fund_owner can collect fee now" ], "signer": true }, { "name": "pool_state", "docs": [ "Pool state stores accumulated protocol fee amount" ], "writable": true }, { "name": "amm_config", "docs": [ "Amm config account stores fund_owner" ] }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] }, { "name": "recipient_token_account_0", "docs": [ "The address that receives the collected token_0 protocol fees" ], "writable": true }, { "name": "recipient_token_account_1", "docs": [ "The address that receives the collected token_1 protocol fees" ], "writable": true }, { "name": "token_program", "docs": [ "The SPL program to perform token transfers" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "The SPL program 2022 to perform token transfers" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" } ], "args": [ { "name": "amount_0_requested", "type": "u64" }, { "name": "amount_1_requested", "type": "u64" } ] }, { "name": "collect_protocol_fee", "docs": [ "Collect the protocol fee accrued to the pool", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1", "* `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0", "" ], "discriminator": [ 136, 136, 252, 221, 194, 66, 126, 89 ], "accounts": [ { "name": "owner", "docs": [ "Only admin or config owner can collect fee now" ], "signer": true }, { "name": "pool_state", "docs": [ "Pool state stores accumulated protocol fee amount" ], "writable": true }, { "name": "amm_config", "docs": [ "Amm config account stores owner" ] }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] }, { "name": "recipient_token_account_0", "docs": [ "The address that receives the collected token_0 protocol fees" ], "writable": true }, { "name": "recipient_token_account_1", "docs": [ "The address that receives the collected token_1 protocol fees" ], "writable": true }, { "name": "token_program", "docs": [ "The SPL program to perform token transfers" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "The SPL program 2022 to perform token transfers" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" } ], "args": [ { "name": "amount_0_requested", "type": "u64" }, { "name": "amount_1_requested", "type": "u64" } ] }, { "name": "collect_remaining_rewards", "docs": [ "Collect remaining reward token for reward founder", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `reward_index` - the index to reward info", "" ], "discriminator": [ 18, 237, 166, 197, 34, 16, 213, 144 ], "accounts": [ { "name": "reward_funder", "docs": [ "The founder who init reward info previously" ], "signer": true }, { "name": "funder_token_account", "docs": [ "The funder's reward token account" ], "writable": true }, { "name": "pool_state", "docs": [ "Set reward for this pool" ], "writable": true }, { "name": "reward_token_vault", "docs": [ "Reward vault transfer remaining token to founder token account" ] }, { "name": "reward_vault_mint", "docs": [ "The mint of reward token vault" ] }, { "name": "token_program", "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "memo_program", "docs": [ "memo program" ], "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr" } ], "args": [ { "name": "reward_index", "type": "u8" } ] }, { "name": "create_amm_config", "docs": [ "# Arguments", "", "* `ctx`- The accounts needed by instruction.", "* `index` - The index of amm config, there may be multiple config.", "* `tick_spacing` - The tickspacing binding with config, cannot be changed.", "* `trade_fee_rate` - Trade fee rate, can be changed.", "* `protocol_fee_rate` - The rate of protocol fee within trade fee.", "* `fund_fee_rate` - The rate of fund fee within trade fee.", "" ], "discriminator": [ 137, 52, 237, 212, 215, 117, 108, 104 ], "accounts": [ { "name": "owner", "docs": [ "Address to be set as protocol owner." ], "writable": true, "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "amm_config", "docs": [ "Initialize config state account to store protocol owner address and fee rates." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 109, 109, 95, 99, 111, 110, 102, 105, 103 ] }, { "kind": "arg", "path": "index" } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "index", "type": "u16" }, { "name": "tick_spacing", "type": "u16" }, { "name": "trade_fee_rate", "type": "u32" }, { "name": "protocol_fee_rate", "type": "u32" }, { "name": "fund_fee_rate", "type": "u32" } ] }, { "name": "create_operation_account", "docs": [ "Creates an operation account for the program", "", "# Arguments", "", "* `ctx`- The context of accounts", "" ], "discriminator": [ 63, 87, 148, 33, 109, 35, 8, 104 ], "accounts": [ { "name": "owner", "docs": [ "Address to be set as operation account owner." ], "writable": true, "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "operation_state", "docs": [ "Initialize operation state account to store operation owner address and white list mint." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 111, 112, 101, 114, 97, 116, 105, 111, 110 ] } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "create_permissionless_farm_switch", "docs": [ "Creates a permissionless farm switch account for the program", "", "# Arguments", "", "* `ctx`- The context of accounts", "" ], "discriminator": [ 88, 242, 198, 70, 241, 6, 196, 251 ], "accounts": [ { "name": "owner", "writable": true, "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "permissionless_farm_switch", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 101, 114, 109, 105, 115, 115, 105, 111, 110, 108, 101, 115, 115, 95, 102, 97, 114, 109, 95, 115, 119, 105, 116, 99, 104 ] } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "create_pool", "docs": [ "Creates a pool for the given token pair and the initial price", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `sqrt_price_x64` - the initial sqrt price (amount_token_1 / amount_token_0) of the pool as a Q64.64", "Note: The open_time must be smaller than the current block_timestamp on chain." ], "discriminator": [ 233, 146, 209, 142, 207, 104, 64, 188 ], "accounts": [ { "name": "pool_creator", "docs": [ "Address paying to create the pool. Can be anyone" ], "writable": true, "signer": true }, { "name": "amm_config", "docs": [ "Which config the pool belongs to." ] }, { "name": "pool_state", "docs": [ "Initialize an account to store the pool state" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 111, 108 ] }, { "kind": "account", "path": "amm_config" }, { "kind": "account", "path": "token_mint_0" }, { "kind": "account", "path": "token_mint_1" } ] } }, { "name": "token_mint_0", "docs": [ "Token_0 mint, the key must be smaller then token_1 mint." ] }, { "name": "token_mint_1", "docs": [ "Token_1 mint" ] }, { "name": "token_vault_0", "docs": [ "Token_0 vault for the pool" ], "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": "token_mint_0" } ] } }, { "name": "token_vault_1", "docs": [ "Token_1 vault for the pool" ], "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": "token_mint_1" } ] } }, { "name": "observation_state", "docs": [ "Initialize an account to store oracle observations" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 111, 98, 115, 101, 114, 118, 97, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "tick_array_bitmap", "docs": [ "Initialize an account to store if a tick array is initialized." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 111, 108, 95, 116, 105, 99, 107, 95, 97, 114, 114, 97, 121, 95, 98, 105, 116, 109, 97, 112, 95, 101, 120, 116, 101, 110, 115, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "token_program_0", "docs": [ "Spl token program or token program 2022" ] }, { "name": "token_program_1", "docs": [ "Spl token program or token program 2022" ] }, { "name": "system_program", "docs": [ "To create a new program account" ], "address": "11111111111111111111111111111111" }, { "name": "rent", "docs": [ "Sysvar for program account" ], "address": "SysvarRent111111111111111111111111111111111" } ], "args": [ { "name": "sqrt_price_x64", "type": "u128" }, { "name": "open_time", "type": "u64" } ] }, { "name": "create_support_mint_associated", "docs": [ "Create support token22 mint account which can create pool and send rewards with ignoring the not support extensions." ], "discriminator": [ 17, 251, 65, 92, 136, 242, 14, 169 ], "accounts": [ { "name": "owner", "docs": [ "Address to be set as protocol owner." ], "writable": true, "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "token_mint", "docs": [ "Support token mint" ] }, { "name": "support_mint_associated", "docs": [ "Initialize support mint state account to store support mint address and bump." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 117, 112, 112, 111, 114, 116, 95, 109, 105, 110, 116 ] }, { "kind": "account", "path": "token_mint" } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "decrease_liquidity", "docs": [ "#[deprecated(note = \"Use `decrease_liquidity_v2` instead.\")]", "Decreases liquidity for an existing position", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `liquidity` - The amount by which liquidity will be decreased", "* `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity", "* `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity", "" ], "discriminator": [ 160, 38, 208, 111, 104, 91, 44, 1 ], "accounts": [ { "name": "nft_owner", "docs": [ "The position owner or delegated authority" ], "signer": true }, { "name": "nft_account", "docs": [ "The token account for the tokenized position" ] }, { "name": "personal_position", "docs": [ "Decrease liquidity for this position" ], "writable": true }, { "name": "pool_state", "writable": true }, { "name": "protocol_position", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "personal_position.tick_lower_index", "account": "PersonalPositionState" }, { "kind": "account", "path": "personal_position.tick_upper_index", "account": "PersonalPositionState" } ] } }, { "name": "token_vault_0", "docs": [ "Token_0 vault" ], "writable": true }, { "name": "token_vault_1", "docs": [ "Token_1 vault" ], "writable": true }, { "name": "tick_array_lower", "docs": [ "Stores init state for the lower tick" ], "writable": true }, { "name": "tick_array_upper", "docs": [ "Stores init state for the upper tick" ], "writable": true }, { "name": "recipient_token_account_0", "docs": [ "The destination token account for receive amount_0" ], "writable": true }, { "name": "recipient_token_account_1", "docs": [ "The destination token account for receive amount_1" ], "writable": true }, { "name": "token_program", "docs": [ "SPL program to transfer out tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" } ], "args": [ { "name": "liquidity", "type": "u128" }, { "name": "amount_0_min", "type": "u64" }, { "name": "amount_1_min", "type": "u64" } ] }, { "name": "decrease_liquidity_v2", "docs": [ "Decreases liquidity for an existing position, support Token2022", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `liquidity` - The amount by which liquidity will be decreased", "* `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity", "* `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity", "" ], "discriminator": [ 58, 127, 188, 62, 79, 82, 196, 96 ], "accounts": [ { "name": "nft_owner", "docs": [ "The position owner or delegated authority" ], "signer": true }, { "name": "nft_account", "docs": [ "The token account for the tokenized position" ] }, { "name": "personal_position", "docs": [ "Decrease liquidity for this position" ], "writable": true }, { "name": "pool_state", "writable": true }, { "name": "protocol_position", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "personal_position.tick_lower_index", "account": "PersonalPositionState" }, { "kind": "account", "path": "personal_position.tick_upper_index", "account": "PersonalPositionState" } ] } }, { "name": "token_vault_0", "docs": [ "Token_0 vault" ], "writable": true }, { "name": "token_vault_1", "docs": [ "Token_1 vault" ], "writable": true }, { "name": "tick_array_lower", "docs": [ "Stores init state for the lower tick" ], "writable": true }, { "name": "tick_array_upper", "docs": [ "Stores init state for the upper tick" ], "writable": true }, { "name": "recipient_token_account_0", "docs": [ "The destination token account for receive amount_0" ], "writable": true }, { "name": "recipient_token_account_1", "docs": [ "The destination token account for receive amount_1" ], "writable": true }, { "name": "token_program", "docs": [ "SPL program to transfer out tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "memo_program", "docs": [ "memo program" ], "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr" }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] } ], "args": [ { "name": "liquidity", "type": "u128" }, { "name": "amount_0_min", "type": "u64" }, { "name": "amount_1_min", "type": "u64" } ] }, { "name": "increase_liquidity", "docs": [ "#[deprecated(note = \"Use `increase_liquidity_v2` instead.\")]", "Increases liquidity for an existing position, with amount paid by `payer`", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `liquidity` - The desired liquidity to be added, can't be zero", "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check", "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check", "" ], "discriminator": [ 46, 156, 243, 118, 13, 205, 251, 178 ], "accounts": [ { "name": "nft_owner", "docs": [ "Pays to mint the position" ], "signer": true }, { "name": "nft_account", "docs": [ "The token account for nft" ] }, { "name": "pool_state", "writable": true }, { "name": "protocol_position", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "personal_position.tick_lower_index", "account": "PersonalPositionState" }, { "kind": "account", "path": "personal_position.tick_upper_index", "account": "PersonalPositionState" } ] } }, { "name": "personal_position", "docs": [ "Increase liquidity for this position" ], "writable": true }, { "name": "tick_array_lower", "docs": [ "Stores init state for the lower tick" ], "writable": true }, { "name": "tick_array_upper", "docs": [ "Stores init state for the upper tick" ], "writable": true }, { "name": "token_account_0", "docs": [ "The payer's token account for token_0" ], "writable": true }, { "name": "token_account_1", "docs": [ "The token account spending token_1 to mint the position" ], "writable": true }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "token_program", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" } ], "args": [ { "name": "liquidity", "type": "u128" }, { "name": "amount_0_max", "type": "u64" }, { "name": "amount_1_max", "type": "u64" } ] }, { "name": "increase_liquidity_v2", "docs": [ "Increases liquidity for an existing position, with amount paid by `payer`, support Token2022", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `liquidity` - The desired liquidity to be added, if zero, calculate liquidity base amount_0 or amount_1 according base_flag", "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check", "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check", "* `base_flag` - must be specified if liquidity is zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max", "" ], "discriminator": [ 133, 29, 89, 223, 69, 238, 176, 10 ], "accounts": [ { "name": "nft_owner", "docs": [ "Pays to mint the position" ], "signer": true }, { "name": "nft_account", "docs": [ "The token account for nft" ] }, { "name": "pool_state", "writable": true }, { "name": "protocol_position", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "personal_position.tick_lower_index", "account": "PersonalPositionState" }, { "kind": "account", "path": "personal_position.tick_upper_index", "account": "PersonalPositionState" } ] } }, { "name": "personal_position", "docs": [ "Increase liquidity for this position" ], "writable": true }, { "name": "tick_array_lower", "docs": [ "Stores init state for the lower tick" ], "writable": true }, { "name": "tick_array_upper", "docs": [ "Stores init state for the upper tick" ], "writable": true }, { "name": "token_account_0", "docs": [ "The payer's token account for token_0" ], "writable": true }, { "name": "token_account_1", "docs": [ "The token account spending token_1 to mint the position" ], "writable": true }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "token_program", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] } ], "args": [ { "name": "liquidity", "type": "u128" }, { "name": "amount_0_max", "type": "u64" }, { "name": "amount_1_max", "type": "u64" }, { "name": "base_flag", "type": { "option": "bool" } } ] }, { "name": "initialize_reward", "docs": [ "Initialize a reward info for a given pool and reward index", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `reward_index` - the index to reward info", "* `open_time` - reward open timestamp", "* `end_time` - reward end timestamp", "* `emissions_per_second_x64` - Token reward per second are earned per unit of liquidity.", "" ], "discriminator": [ 95, 135, 192, 196, 242, 129, 230, 68 ], "accounts": [ { "name": "reward_funder", "docs": [ "The founder deposit reward token to vault" ], "writable": true, "signer": true }, { "name": "funder_token_account", "writable": true }, { "name": "amm_config", "docs": [ "For check the reward_funder authority" ] }, { "name": "pool_state", "docs": [ "Set reward for this pool" ], "writable": true }, { "name": "operation_state", "docs": [ "load info from the account to judge reward permission" ], "pda": { "seeds": [ { "kind": "const", "value": [ 111, 112, 101, 114, 97, 116, 105, 111, 110 ] } ] } }, { "name": "permissionless_farm_switch", "pda": { "seeds": [ { "kind": "const", "value": [ 112, 101, 114, 109, 105, 115, 115, 105, 111, 110, 108, 101, 115, 115, 95, 102, 97, 114, 109, 95, 115, 119, 105, 116, 99, 104 ] } ] } }, { "name": "reward_token_mint", "docs": [ "Reward mint" ] }, { "name": "reward_token_vault", "docs": [ "A pda, reward vault" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 111, 108, 95, 114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "reward_token_mint" } ] } }, { "name": "reward_token_program" }, { "name": "system_program", "address": "11111111111111111111111111111111" }, { "name": "rent", "address": "SysvarRent111111111111111111111111111111111" } ], "args": [ { "name": "param", "type": { "defined": { "name": "InitializeRewardParam" } } } ] }, { "name": "open_position", "docs": [ "#[deprecated(note = \"Use `open_position_with_token22_nft` instead.\")]", "Creates a new position wrapped in a NFT", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `tick_lower_index` - The low boundary of market", "* `tick_upper_index` - The upper boundary of market", "* `tick_array_lower_start_index` - The start index of tick array which include tick low", "* `tick_array_upper_start_index` - The start index of tick array which include tick upper", "* `liquidity` - The liquidity to be added", "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check", "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check", "" ], "discriminator": [ 135, 128, 47, 77, 15, 152, 240, 49 ], "accounts": [ { "name": "payer", "docs": [ "Pays to mint the position" ], "writable": true, "signer": true }, { "name": "position_nft_owner" }, { "name": "position_nft_mint", "docs": [ "Unique token mint address" ], "writable": true, "signer": true }, { "name": "position_nft_account", "docs": [ "Token account where position NFT will be minted", "This account created in the contract by cpi to avoid large stack variables" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "position_nft_owner" }, { "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": "position_nft_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": "metadata_account", "docs": [ "To store metaplex metadata" ], "writable": true }, { "name": "pool_state", "docs": [ "Add liquidity for this pool" ], "writable": true }, { "name": "protocol_position", "docs": [ "Store the information of market marking in range" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_lower_index" }, { "kind": "arg", "path": "tick_upper_index" } ] } }, { "name": "tick_array_lower", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_lower_start_index" } ] } }, { "name": "tick_array_upper", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_upper_start_index" } ] } }, { "name": "personal_position", "docs": [ "personal position state" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "position_nft_mint" } ] } }, { "name": "token_account_0", "docs": [ "The token_0 account deposit token to the pool" ], "writable": true }, { "name": "token_account_1", "docs": [ "The token_1 account deposit token to the pool" ], "writable": true }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "rent", "docs": [ "Sysvar for token mint and ATA creation" ], "address": "SysvarRent111111111111111111111111111111111" }, { "name": "system_program", "docs": [ "Program to create the position manager state account" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "associated_token_program", "docs": [ "Program to create an ATA for receiving position NFT" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "metadata_program", "docs": [ "Program to create NFT metadata" ], "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" } ], "args": [ { "name": "tick_lower_index", "type": "i32" }, { "name": "tick_upper_index", "type": "i32" }, { "name": "tick_array_lower_start_index", "type": "i32" }, { "name": "tick_array_upper_start_index", "type": "i32" }, { "name": "liquidity", "type": "u128" }, { "name": "amount_0_max", "type": "u64" }, { "name": "amount_1_max", "type": "u64" } ] }, { "name": "open_position_v2", "docs": [ "#[deprecated(note = \"Use `open_position_with_token22_nft` instead.\")]", "Creates a new position wrapped in a NFT, support Token2022", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `tick_lower_index` - The low boundary of market", "* `tick_upper_index` - The upper boundary of market", "* `tick_array_lower_start_index` - The start index of tick array which include tick low", "* `tick_array_upper_start_index` - The start index of tick array which include tick upper", "* `liquidity` - The liquidity to be added, if zero, and the base_flag is specified, calculate liquidity base amount_0_max or amount_1_max according base_flag, otherwise open position with zero liquidity", "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check", "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check", "* `with_metadata` - The flag indicating whether to create NFT mint metadata", "* `base_flag` - if the liquidity specified as zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max", "" ], "discriminator": [ 77, 184, 74, 214, 112, 86, 241, 199 ], "accounts": [ { "name": "payer", "docs": [ "Pays to mint the position" ], "writable": true, "signer": true }, { "name": "position_nft_owner" }, { "name": "position_nft_mint", "docs": [ "Unique token mint address" ], "writable": true, "signer": true }, { "name": "position_nft_account", "docs": [ "Token account where position NFT will be minted" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "position_nft_owner" }, { "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": "position_nft_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": "metadata_account", "docs": [ "To store metaplex metadata" ], "writable": true }, { "name": "pool_state", "docs": [ "Add liquidity for this pool" ], "writable": true }, { "name": "protocol_position", "docs": [ "Store the information of market marking in range" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_lower_index" }, { "kind": "arg", "path": "tick_upper_index" } ] } }, { "name": "tick_array_lower", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_lower_start_index" } ] } }, { "name": "tick_array_upper", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_upper_start_index" } ] } }, { "name": "personal_position", "docs": [ "personal position state" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "position_nft_mint" } ] } }, { "name": "token_account_0", "docs": [ "The token_0 account deposit token to the pool" ], "writable": true }, { "name": "token_account_1", "docs": [ "The token_1 account deposit token to the pool" ], "writable": true }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "rent", "docs": [ "Sysvar for token mint and ATA creation" ], "address": "SysvarRent111111111111111111111111111111111" }, { "name": "system_program", "docs": [ "Program to create the position manager state account" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "associated_token_program", "docs": [ "Program to create an ATA for receiving position NFT" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "metadata_program", "docs": [ "Program to create NFT metadata" ], "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" }, { "name": "token_program_2022", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] } ], "args": [ { "name": "tick_lower_index", "type": "i32" }, { "name": "tick_upper_index", "type": "i32" }, { "name": "tick_array_lower_start_index", "type": "i32" }, { "name": "tick_array_upper_start_index", "type": "i32" }, { "name": "liquidity", "type": "u128" }, { "name": "amount_0_max", "type": "u64" }, { "name": "amount_1_max", "type": "u64" }, { "name": "with_metadata", "type": "bool" }, { "name": "base_flag", "type": { "option": "bool" } } ] }, { "name": "open_position_with_token22_nft", "docs": [ "Creates a new position wrapped in a Token2022 NFT without relying on metadata_program and metadata_account, reduce the cost for user to create a personal position.", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `tick_lower_index` - The low boundary of market", "* `tick_upper_index` - The upper boundary of market", "* `tick_array_lower_start_index` - The start index of tick array which include tick low", "* `tick_array_upper_start_index` - The start index of tick array which include tick upper", "* `liquidity` - The liquidity to be added, if zero, and the base_flag is specified, calculate liquidity base amount_0_max or amount_1_max according base_flag, otherwise open position with zero liquidity", "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check", "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check", "* `with_metadata` - The flag indicating whether to create NFT mint metadata", "* `base_flag` - if the liquidity specified as zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max", "" ], "discriminator": [ 77, 255, 174, 82, 125, 29, 201, 46 ], "accounts": [ { "name": "payer", "docs": [ "Pays to mint the position" ], "writable": true, "signer": true }, { "name": "position_nft_owner" }, { "name": "position_nft_mint", "docs": [ "Unique token mint address, initialize in contract" ], "writable": true, "signer": true }, { "name": "position_nft_account", "writable": true }, { "name": "pool_state", "docs": [ "Add liquidity for this pool" ], "writable": true }, { "name": "protocol_position", "docs": [ "Store the information of market marking in range" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_lower_index" }, { "kind": "arg", "path": "tick_upper_index" } ] } }, { "name": "tick_array_lower", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_lower_start_index" } ] } }, { "name": "tick_array_upper", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 105, 99, 107, 95, 97, 114, 114, 97, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "tick_array_upper_start_index" } ] } }, { "name": "personal_position", "docs": [ "personal position state" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ] }, { "kind": "account", "path": "position_nft_mint" } ] } }, { "name": "token_account_0", "docs": [ "The token_0 account deposit token to the pool" ], "writable": true }, { "name": "token_account_1", "docs": [ "The token_1 account deposit token to the pool" ], "writable": true }, { "name": "token_vault_0", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_vault_1", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "rent", "docs": [ "Sysvar for token mint and ATA creation" ], "address": "SysvarRent111111111111111111111111111111111" }, { "name": "system_program", "docs": [ "Program to create the position manager state account" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "Program to transfer for token account" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "associated_token_program", "docs": [ "Program to create an ATA for receiving position NFT" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "token_program_2022", "docs": [ "Program to create NFT mint/token account and transfer for token22 account" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "vault_0_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token vault 1" ] } ], "args": [ { "name": "tick_lower_index", "type": "i32" }, { "name": "tick_upper_index", "type": "i32" }, { "name": "tick_array_lower_start_index", "type": "i32" }, { "name": "tick_array_upper_start_index", "type": "i32" }, { "name": "liquidity", "type": "u128" }, { "name": "amount_0_max", "type": "u64" }, { "name": "amount_1_max", "type": "u64" }, { "name": "with_metadata", "type": "bool" }, { "name": "base_flag", "type": { "option": "bool" } } ] }, { "name": "set_reward_params", "docs": [ "Reset reward param, start a new reward cycle or extend the current cycle.", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `reward_index` - The index of reward token in the pool.", "* `emissions_per_second_x64` - The per second emission reward, when extend the current cycle,", "new value can't be less than old value", "* `open_time` - reward open timestamp, must be set when starting a new cycle", "* `end_time` - reward end timestamp", "" ], "discriminator": [ 112, 52, 167, 75, 32, 201, 211, 137 ], "accounts": [ { "name": "authority", "docs": [ "Address to be set as protocol owner. It pays to create factory state account." ], "signer": true }, { "name": "amm_config" }, { "name": "pool_state", "writable": true }, { "name": "operation_state", "docs": [ "load info from the account to judge reward permission" ], "pda": { "seeds": [ { "kind": "const", "value": [ 111, 112, 101, 114, 97, 116, 105, 111, 110 ] } ] } }, { "name": "token_program", "docs": [ "Token program" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" } ], "args": [ { "name": "reward_index", "type": "u8" }, { "name": "emissions_per_second_x64", "type": "u128" }, { "name": "open_time", "type": "u64" }, { "name": "end_time", "type": "u64" } ] }, { "name": "swap", "docs": [ "#[deprecated(note = \"Use `swap_v2` instead.\")]", "Swaps one token for as much as possible of another token across a single pool", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum)", "* `other_amount_threshold` - For slippage check", "* `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot", "* `is_base_input` - swap base input or swap base output", "" ], "discriminator": [ 248, 198, 158, 145, 225, 117, 135, 200 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "amm_config", "docs": [ "The factory state to read protocol fees" ] }, { "name": "pool_state", "docs": [ "The program account of the pool in which the swap will be performed" ], "writable": true }, { "name": "input_token_account", "docs": [ "The user token account for input token" ], "writable": true }, { "name": "output_token_account", "docs": [ "The user token account for output token" ], "writable": true }, { "name": "input_vault", "docs": [ "The vault token account for input token" ], "writable": true }, { "name": "output_vault", "docs": [ "The vault token account for output token" ], "writable": true }, { "name": "observation_state", "docs": [ "The program account for the most recent oracle observation" ], "writable": true }, { "name": "token_program", "docs": [ "SPL program for token transfers" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "tick_array", "writable": true } ], "args": [ { "name": "amount", "type": "u64" }, { "name": "other_amount_threshold", "type": "u64" }, { "name": "sqrt_price_limit_x64", "type": "u128" }, { "name": "is_base_input", "type": "bool" } ] }, { "name": "swap_router_base_in", "docs": [ "Swap token for as much as possible of another token across the path provided, base input", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `amount_in` - Token amount to be swapped in", "* `amount_out_minimum` - Panic if output amount is below minimum amount. For slippage.", "" ], "discriminator": [ 69, 125, 115, 218, 245, 186, 242, 196 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "input_token_account", "docs": [ "The token account that pays input tokens for the swap" ], "writable": true }, { "name": "input_token_mint", "docs": [ "The mint of input token" ], "writable": true }, { "name": "token_program", "docs": [ "SPL program for token transfers" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "SPL program 2022 for token transfers" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "memo_program", "docs": [ "Memo program" ], "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr" } ], "args": [ { "name": "amount_in", "type": "u64" }, { "name": "amount_out_minimum", "type": "u64" } ] }, { "name": "swap_v2", "docs": [ "Swaps one token for as much as possible of another token across a single pool, support token program 2022", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum)", "* `other_amount_threshold` - For slippage check", "* `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot", "* `is_base_input` - swap base input or swap base output", "" ], "discriminator": [ 43, 4, 237, 11, 26, 201, 30, 98 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "amm_config", "docs": [ "The factory state to read protocol fees" ] }, { "name": "pool_state", "docs": [ "The program account of the pool in which the swap will be performed" ], "writable": true }, { "name": "input_token_account", "docs": [ "The user token account for input token" ], "writable": true }, { "name": "output_token_account", "docs": [ "The user token account for output token" ], "writable": true }, { "name": "input_vault", "docs": [ "The vault token account for input token" ], "writable": true }, { "name": "output_vault", "docs": [ "The vault token account for output token" ], "writable": true }, { "name": "observation_state", "docs": [ "The program account for the most recent oracle observation" ], "writable": true }, { "name": "token_program", "docs": [ "SPL program for token transfers" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "SPL program 2022 for token transfers" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "memo_program", "docs": [ "Memo program" ], "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr" }, { "name": "input_vault_mint", "docs": [ "The mint of token vault 0" ] }, { "name": "output_vault_mint", "docs": [ "The mint of token vault 1" ] } ], "args": [ { "name": "amount", "type": "u64" }, { "name": "other_amount_threshold", "type": "u64" }, { "name": "sqrt_price_limit_x64", "type": "u128" }, { "name": "is_base_input", "type": "bool" } ] }, { "name": "toggle_permissionless_farm_switch", "docs": [ "Toggle the permissionless farm switch account", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `is_on`- Is the permissionless farm allowed or not", "" ], "discriminator": [ 150, 112, 54, 233, 238, 161, 7, 86 ], "accounts": [ { "name": "owner", "writable": true, "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "permissionless_farm_switch", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 101, 114, 109, 105, 115, 115, 105, 111, 110, 108, 101, 115, 115, 95, 102, 97, 114, 109, 95, 115, 119, 105, 116, 99, 104 ] } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "is_on", "type": "bool" } ] }, { "name": "transfer_reward_owner", "docs": [ "Transfer reward owner", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `new_owner`- new owner pubkey", "" ], "discriminator": [ 7, 22, 12, 83, 242, 43, 48, 121 ], "accounts": [ { "name": "authority", "docs": [ "Address to be set as operation account owner." ], "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "pool_state", "writable": true } ], "args": [ { "name": "new_owner", "type": "pubkey" } ] }, { "name": "update_amm_config", "docs": [ "Updates the owner of the amm config", "Must be called by the current owner or admin", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `trade_fee_rate`- The new trade fee rate of amm config, be set when `param` is 0", "* `protocol_fee_rate`- The new protocol fee rate of amm config, be set when `param` is 1", "* `fund_fee_rate`- The new fund fee rate of amm config, be set when `param` is 2", "* `new_owner`- The config's new owner, be set when `param` is 3", "* `new_fund_owner`- The config's new fund owner, be set when `param` is 4", "* `param`- The value can be 0 | 1 | 2 | 3 | 4, otherwise will report a error", "" ], "discriminator": [ 49, 60, 174, 136, 154, 28, 116, 200 ], "accounts": [ { "name": "owner", "docs": [ "The amm config owner or admin" ], "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "amm_config", "docs": [ "Amm config account to be changed" ], "writable": true } ], "args": [ { "name": "param", "type": "u8" }, { "name": "value", "type": "u32" } ] }, { "name": "update_operation_account", "docs": [ "Update the operation account", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `param`- The value can be 0 | 1 | 2 | 3, otherwise will report a error", "* `keys`- update operation owner when the `param` is 0", "remove operation owner when the `param` is 1", "update whitelist mint when the `param` is 2", "remove whitelist mint when the `param` is 3", "" ], "discriminator": [ 127, 70, 119, 40, 188, 227, 61, 7 ], "accounts": [ { "name": "owner", "docs": [ "Address to be set as operation account owner." ], "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "operation_state", "docs": [ "Initialize operation state account to store operation owner address and white list mint." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 111, 112, 101, 114, 97, 116, 105, 111, 110 ] } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "param", "type": "u8" }, { "name": "keys", "type": { "vec": "pubkey" } } ] }, { "name": "update_pool_status", "docs": [ "Update pool status for given value", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `status` - The value of status", "" ], "discriminator": [ 130, 87, 108, 6, 46, 224, 117, 123 ], "accounts": [ { "name": "authority", "signer": true, "address": "DmwXqqK5Zuj619au6q2Jx3TMr9ZV1837uxJcEwyvXVtV" }, { "name": "pool_state", "writable": true } ], "args": [ { "name": "status", "type": "u8" } ] }, { "name": "update_reward_infos", "docs": [ "Update rewards info of the given pool, can be called for everyone", "", "# Arguments", "", "* `ctx`- The context of accounts", "" ], "discriminator": [ 163, 172, 224, 52, 11, 154, 106, 223 ], "accounts": [ { "name": "pool_state", "docs": [ "The liquidity pool for which reward info to update" ], "writable": true } ], "args": [] } ], "accounts": [ { "name": "AmmConfig", "discriminator": [ 218, 244, 33, 104, 203, 203, 43, 111 ] }, { "name": "ObservationState", "discriminator": [ 122, 174, 197, 53, 129, 9, 165, 132 ] }, { "name": "OperationState", "discriminator": [ 19, 236, 58, 237, 81, 222, 183, 252 ] }, { "name": "PermissionlessFarmSwitch", "discriminator": [ 37, 92, 147, 78, 250, 100, 147, 137 ] }, { "name": "PersonalPositionState", "discriminator": [ 70, 111, 150, 126, 230, 15, 25, 117 ] }, { "name": "PoolState", "discriminator": [ 247, 237, 227, 245, 215, 195, 222, 70 ] }, { "name": "ProtocolPositionState", "discriminator": [ 100, 226, 145, 99, 146, 218, 160, 106 ] }, { "name": "SupportMintAssociated", "discriminator": [ 134, 40, 183, 79, 12, 112, 162, 53 ] }, { "name": "TickArrayBitmapExtension", "discriminator": [ 60, 150, 36, 219, 97, 128, 139, 153 ] }, { "name": "TickArrayState", "discriminator": [ 192, 155, 85, 205, 49, 249, 129, 42 ] } ], "events": [ { "name": "CollectPersonalFeeEvent", "discriminator": [ 166, 174, 105, 192, 81, 161, 83, 105 ] }, { "name": "CollectProtocolFeeEvent", "discriminator": [ 206, 87, 17, 79, 45, 41, 213, 61 ] }, { "name": "ConfigChangeEvent", "discriminator": [ 247, 189, 7, 119, 106, 112, 95, 151 ] }, { "name": "CreatePersonalPositionEvent", "discriminator": [ 100, 30, 87, 249, 196, 223, 154, 206 ] }, { "name": "DecreaseLiquidityEvent", "discriminator": [ 58, 222, 86, 58, 68, 50, 85, 56 ] }, { "name": "IncreaseLiquidityEvent", "discriminator": [ 49, 79, 105, 212, 32, 34, 30, 84 ] }, { "name": "LiquidityCalculateEvent", "discriminator": [ 237, 112, 148, 230, 57, 84, 180, 162 ] }, { "name": "LiquidityChangeEvent", "discriminator": [ 126, 240, 175, 206, 158, 88, 153, 107 ] }, { "name": "PoolCreatedEvent", "discriminator": [ 25, 94, 75, 47, 112, 99, 53, 63 ] }, { "name": "SwapEvent", "discriminator": [ 64, 198, 205, 232, 38, 8, 113, 226 ] }, { "name": "UpdateRewardInfosEvent", "discriminator": [ 109, 127, 186, 78, 114, 65, 37, 236 ] } ], "errors": [ { "code": 6000, "name": "LOK", "msg": "LOK" }, { "code": 6001, "name": "NotApproved", "msg": "Not approved" }, { "code": 6002, "name": "InvalidUpdateConfigFlag", "msg": "invalid update amm config flag" }, { "code": 6003, "name": "AccountLack", "msg": "Account lack" }, { "code": 6004, "name": "ClosePositionErr", "msg": "Remove liquitity, collect fees owed and reward then you can close position account" }, { "code": 6005, "name": "ZeroMintAmount", "msg": "Minting amount should be greater than 0" }, { "code": 6006, "name": "InvalidTickIndex", "msg": "Tick out of range" }, { "code": 6007, "name": "TickInvalidOrder", "msg": "The lower tick must be below the upper tick" }, { "code": 6008, "name": "TickLowerOverflow", "msg": "The tick must be greater, or equal to the minimum tick(-443636)" }, { "code": 6009, "name": "TickUpperOverflow", "msg": "The tick must be lesser than, or equal to the maximum tick(443636)" }, { "code": 6010, "name": "TickAndSpacingNotMatch", "msg": "tick % tick_spacing must be zero" }, { "code": 6011, "name": "InvalidTickArray", "msg": "Invalid tick array account" }, { "code": 6012, "name": "InvalidTickArrayBoundary", "msg": "Invalid tick array boundary" }, { "code": 6013, "name": "SqrtPriceLimitOverflow", "msg": "Square root price limit overflow" }, { "code": 6014, "name": "SqrtPriceX64", "msg": "sqrt_price_x64 out of range" }, { "code": 6015, "name": "LiquiditySubValueErr", "msg": "Liquidity sub delta L must be smaller than before" }, { "code": 6016, "name": "LiquidityAddValueErr", "msg": "Liquidity add delta L must be greater, or equal to before" }, { "code": 6017, "name": "InvalidLiquidity", "msg": "Invalid liquidity when update position" }, { "code": 6018, "name": "ForbidBothZeroForSupplyLiquidity", "msg": "Both token amount must not be zero while supply liquidity" }, { "code": 6019, "name": "LiquidityInsufficient", "msg": "Liquidity insufficient" }, { "code": 6020, "name": "TransactionTooOld", "msg": "Transaction too old" }, { "code": 6021, "name": "PriceSlippageCheck", "msg": "Price slippage check" }, { "code": 6022, "name": "TooLittleOutputReceived", "msg": "Too little output received" }, { "code": 6023, "name": "TooMuchInputPaid", "msg": "Too much input paid" }, { "code": 6024, "name": "ZeroAmountSpecified", "msg": "Swap special amount can not be zero" }, { "code": 6025, "name": "InvalidInputPoolVault", "msg": "Input pool vault is invalid" }, { "code": 6026, "name": "TooSmallInputOrOutputAmount", "msg": "Swap input or output amount is too small" }, { "code": 6027, "name": "NotEnoughTickArrayAccount", "msg": "Not enought tick array account" }, { "code": 6028, "name": "InvalidFirstTickArrayAccount", "msg": "Invalid first tick array account" }, { "code": 6029, "name": "InvalidRewardIndex", "msg": "Invalid reward index" }, { "code": 6030, "name": "FullRewardInfo", "msg": "The init reward token reach to the max" }, { "code": 6031, "name": "RewardTokenAlreadyInUse", "msg": "The init reward token already in use" }, { "code": 6032, "name": "ExceptRewardMint", "msg": "The reward tokens must contain one of pool vault mint except the last reward" }, { "code": 6033, "name": "InvalidRewardInitParam", "msg": "Invalid reward init param" }, { "code": 6034, "name": "InvalidRewardDesiredAmount", "msg": "Invalid collect reward desired amount" }, { "code": 6035, "name": "InvalidRewardInputAccountNumber", "msg": "Invalid collect reward input account number" }, { "code": 6036, "name": "InvalidRewardPeriod", "msg": "Invalid reward period" }, { "code": 6037, "name": "NotApproveUpdateRewardEmissiones", "msg": "Modification of emissiones is allowed within 72 hours from the end of the previous cycle" }, { "code": 6038, "name": "UnInitializedRewardInfo", "msg": "uninitialized reward info" }, { "code": 6039, "name": "NotSupportMint", "msg": "Not support token_2022 mint extension" }, { "code": 6040, "name": "MissingTickArrayBitmapExtensionAccount", "msg": "Missing tickarray bitmap extension account" }, { "code": 6041, "name": "InsufficientLiquidityForDirection", "msg": "Insufficient liquidity for this direction" }, { "code": 6042, "name": "MaxTokenOverflow", "msg": "Max token overflow" }, { "code": 6043, "name": "CalculateOverflow", "msg": "Calculate overflow" }, { "code": 6044, "name": "TransferFeeCalculateNotMatch", "msg": "TransferFee calculate not match" } ], "types": [ { "name": "AmmConfig", "docs": [ "Holds the current owner of the factory" ], "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": "u8" }, { "name": "index", "type": "u16" }, { "name": "owner", "docs": [ "Address of the protocol owner" ], "type": "pubkey" }, { "name": "protocol_fee_rate", "docs": [ "The protocol fee" ], "type": "u32" }, { "name": "trade_fee_rate", "docs": [ "The trade fee, denominated in hundredths of a bip (10^-6)" ], "type": "u32" }, { "name": "tick_spacing", "docs": [ "The tick spacing" ], "type": "u16" }, { "name": "fund_fee_rate", "docs": [ "The fund fee, denominated in hundredths of a bip (10^-6)" ], "type": "u32" }, { "name": "padding_u32", "type": "u32" }, { "name": "fund_owner", "type": "pubkey" }, { "name": "padding", "type": { "array": [ "u64", 3 ] } } ] } }, { "name": "CollectPersonalFeeEvent", "docs": [ "Emitted when tokens are collected for a position" ], "type": { "kind": "struct", "fields": [ { "name": "position_nft_mint", "docs": [ "The ID of the token for which underlying tokens were collected" ], "type": "pubkey" }, { "name": "recipient_token_account_0", "docs": [ "The token account that received the collected token_0 tokens" ], "type": "pubkey" }, { "name": "recipient_token_account_1", "docs": [ "The token account that received the collected token_1 tokens" ], "type": "pubkey" }, { "name": "amount_0", "docs": [ "The amount of token_0 owed to the position that was collected" ], "type": "u64" }, { "name": "amount_1", "docs": [ "The amount of token_1 owed to the position that was collected" ], "type": "u64" } ] } }, { "name": "CollectProtocolFeeEvent", "docs": [ "Emitted when the collected protocol fees are withdrawn by the factory owner" ], "type": { "kind": "struct", "fields": [ { "name": "pool_state", "docs": [ "The pool whose protocol fee is collected" ], "type": "pubkey" }, { "name": "recipient_token_account_0", "docs": [ "The address that receives the collected token_0 protocol fees" ], "type": "pubkey" }, { "name": "recipient_token_account_1", "docs": [ "The address that receives the collected token_1 protocol fees" ], "type": "pubkey" }, { "name": "amount_0", "docs": [ "The amount of token_0 protocol fees that is withdrawn" ], "type": "u64" }, { "name": "amount_1", "docs": [ "The amount of token_0 protocol fees that is withdrawn" ], "type": "u64" } ] } }, { "name": "ConfigChangeEvent", "docs": [ "Emitted when create or update a config" ], "type": { "kind": "struct", "fields": [ { "name": "index", "type": "u16" }, { "name": "owner", "type": "pubkey" }, { "name": "protocol_fee_rate", "type": "u32" }, { "name": "trade_fee_rate", "type": "u32" }, { "name": "tick_spacing", "type": "u16" }, { "name": "fund_fee_rate", "type": "u32" }, { "name": "fund_owner", "type": "pubkey" } ] } }, { "name": "CreatePersonalPositionEvent", "docs": [ "Emitted when create a new position" ], "type": { "kind": "struct", "fields": [ { "name": "pool_state", "docs": [ "The pool for which liquidity was added" ], "type": "pubkey" }, { "name": "minter", "docs": [ "The address that create the position" ], "type": "pubkey" }, { "name": "nft_owner", "docs": [ "The owner of the position and recipient of any minted liquidity" ], "type": "pubkey" }, { "name": "tick_lower_index", "docs": [ "The lower tick of the position" ], "type": "i32" }, { "name": "tick_upper_index", "docs": [ "The upper tick of the position" ], "type": "i32" }, { "name": "liquidity", "docs": [ "The amount of liquidity minted to the position range" ], "type": "u128" }, { "name": "deposit_amount_0", "docs": [ "The amount of token_0 was deposit for the liquidity" ], "type": "u64" }, { "name": "deposit_amount_1", "docs": [ "The amount of token_1 was deposit for the liquidity" ], "type": "u64" }, { "name": "deposit_amount_0_transfer_fee", "docs": [ "The token transfer fee for deposit_amount_0" ], "type": "u64" }, { "name": "deposit_amount_1_transfer_fee", "docs": [ "The token transfer fee for deposit_amount_1" ], "type": "u64" } ] } }, { "name": "DecreaseLiquidityEvent", "docs": [ "Emitted when liquidity is decreased." ], "type": { "kind": "struct", "fields": [ { "name": "position_nft_mint", "docs": [ "The ID of the token for which liquidity was decreased" ], "type": "pubkey" }, { "name": "liquidity", "docs": [ "The amount by which liquidity for the position was decreased" ], "type": "u128" }, { "name": "decrease_amount_0", "docs": [ "The amount of token_0 that was paid for the decrease in liquidity" ], "type": "u64" }, { "name": "decrease_amount_1", "docs": [ "The amount of token_1 that was paid for the decrease in liquidity" ], "type": "u64" }, { "name": "fee_amount_0", "type": "u64" }, { "name": "fee_amount_1", "docs": [ "The amount of token_1 fee" ], "type": "u64" }, { "name": "reward_amounts", "docs": [ "The amount of rewards" ], "type": { "array": [ "u64", 3 ] } }, { "name": "transfer_fee_0", "docs": [ "The amount of token_0 transfer fee" ], "type": "u64" }, { "name": "transfer_fee_1", "docs": [ "The amount of token_1 transfer fee" ], "type": "u64" } ] } }, { "name": "IncreaseLiquidityEvent", "docs": [ "Emitted when liquidity is increased." ], "type": { "kind": "struct", "fields": [ { "name": "position_nft_mint", "docs": [ "The ID of the token for which liquidity was increased" ], "type": "pubkey" }, { "name": "liquidity", "docs": [ "The amount by which liquidity for the NFT position was increased" ], "type": "u128" }, { "name": "amount_0", "docs": [ "The amount of token_0 that was paid for the increase in liquidity" ], "type": "u64" }, { "name": "amount_1", "docs": [ "The amount of token_1 that was paid for the increase in liquidity" ], "type": "u64" }, { "name": "amount_0_transfer_fee", "docs": [ "The token transfer fee for amount_0" ], "type": "u64" }, { "name": "amount_1_transfer_fee", "docs": [ "The token transfer fee for amount_1" ], "type": "u64" } ] } }, { "name": "InitializeRewardParam", "type": { "kind": "struct", "fields": [ { "name": "open_time", "docs": [ "Reward open time" ], "type": "u64" }, { "name": "end_time", "docs": [ "Reward end time" ], "type": "u64" }, { "name": "emissions_per_second_x64", "docs": [ "Token reward per second are earned per unit of liquidity" ], "type": "u128" } ] } }, { "name": "LiquidityCalculateEvent", "docs": [ "Emitted when liquidity decreased or increase." ], "type": { "kind": "struct", "fields": [ { "name": "pool_liquidity", "docs": [ "The pool liquidity before decrease or increase" ], "type": "u128" }, { "name": "pool_sqrt_price_x64", "docs": [ "The pool price when decrease or increase in liquidity" ], "type": "u128" }, { "name": "pool_tick", "docs": [ "The pool tick when decrease or increase in liquidity" ], "type": "i32" }, { "name": "calc_amount_0", "docs": [ "The amount of token_0 that was calculated for the decrease or increase in liquidity" ], "type": "u64" }, { "name": "calc_amount_1", "docs": [ "The amount of token_1 that was calculated for the decrease or increase in liquidity" ], "type": "u64" }, { "name": "trade_fee_owed_0", "type": "u64" }, { "name": "trade_fee_owed_1", "docs": [ "The amount of token_1 fee" ], "type": "u64" }, { "name": "transfer_fee_0", "docs": [ "The amount of token_0 transfer fee without trade_fee_amount_0" ], "type": "u64" }, { "name": "transfer_fee_1", "docs": [ "The amount of token_1 transfer fee without trade_fee_amount_0" ], "type": "u64" } ] } }, { "name": "LiquidityChangeEvent", "docs": [ "Emitted pool liquidity change when increase and decrease liquidity" ], "type": { "kind": "struct", "fields": [ { "name": "pool_state", "docs": [ "The pool for swap" ], "type": "pubkey" }, { "name": "tick", "docs": [ "The tick of the pool" ], "type": "i32" }, { "name": "tick_lower", "docs": [ "The tick lower of position" ], "type": "i32" }, { "name": "tick_upper", "docs": [ "The tick lower of position" ], "type": "i32" }, { "name": "liquidity_before", "docs": [ "The liquidity of the pool before liquidity change" ], "type": "u128" }, { "name": "liquidity_after", "docs": [ "The liquidity of the pool after liquidity change" ], "type": "u128" } ] } }, { "name": "Observation", "docs": [ "The element of observations in ObservationState" ], "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "block_timestamp", "docs": [ "The block timestamp of the observation" ], "type": "u32" }, { "name": "tick_cumulative", "docs": [ "the cumulative of tick during the duration time" ], "type": "i64" }, { "name": "padding", "docs": [ "padding for feature update" ], "type": { "array": [ "u64", 4 ] } } ] } }, { "name": "ObservationState", "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "initialized", "docs": [ "Whether the ObservationState is initialized" ], "type": "bool" }, { "name": "recent_epoch", "docs": [ "recent update epoch" ], "type": "u64" }, { "name": "observation_index", "docs": [ "the most-recently updated index of the observations array" ], "type": "u16" }, { "name": "pool_id", "docs": [ "belongs to which pool" ], "type": "pubkey" }, { "name": "observations", "docs": [ "observation array" ], "type": { "array": [ { "defined": { "name": "Observation" } }, 100 ] } }, { "name": "padding", "docs": [ "padding for feature update" ], "type": { "array": [ "u64", 4 ] } } ] } }, { "name": "OperationState", "docs": [ "Holds the current owner of the factory" ], "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": "u8" }, { "name": "operation_owners", "docs": [ "Address of the operation owner" ], "type": { "array": [ "pubkey", 10 ] } }, { "name": "whitelist_mints", "docs": [ "The mint address of whitelist to emit reward" ], "type": { "array": [ "pubkey", 100 ] } } ] } }, { "name": "PermissionlessFarmSwitch", "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": "u8" }, { "name": "is_on", "docs": [ "Is the permissionless farm allowed or not" ], "type": "bool" } ] } }, { "name": "PersonalPositionState", "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": { "array": [ "u8", 1 ] } }, { "name": "nft_mint", "docs": [ "Mint address of the tokenized position" ], "type": "pubkey" }, { "name": "pool_id", "docs": [ "The ID of the pool with which this token is connected" ], "type": "pubkey" }, { "name": "tick_lower_index", "docs": [ "The lower bound tick of the position" ], "type": "i32" }, { "name": "tick_upper_index", "docs": [ "The upper bound tick of the position" ], "type": "i32" }, { "name": "liquidity", "docs": [ "The amount of liquidity owned by this position" ], "type": "u128" }, { "name": "fee_growth_inside_0_last_x64", "docs": [ "The token_0 fee growth of the aggregate position as of the last action on the individual position" ], "type": "u128" }, { "name": "fee_growth_inside_1_last_x64", "docs": [ "The token_1 fee growth of the aggregate position as of the last action on the individual position" ], "type": "u128" }, { "name": "token_fees_owed_0", "docs": [ "The fees owed to the position owner in token_0, as of the last computation" ], "type": "u64" }, { "name": "token_fees_owed_1", "docs": [ "The fees owed to the position owner in token_1, as of the last computation" ], "type": "u64" }, { "name": "reward_infos", "type": { "array": [ { "defined": { "name": "PositionRewardInfo" } }, 3 ] } }, { "name": "recent_epoch", "type": "u64" }, { "name": "padding", "type": { "array": [ "u64", 7 ] } } ] } }, { "name": "PoolCreatedEvent", "docs": [ "Emitted when a pool is created and initialized with a starting price", "" ], "type": { "kind": "struct", "fields": [ { "name": "token_mint_0", "docs": [ "The first token of the pool by address sort order" ], "type": "pubkey" }, { "name": "token_mint_1", "docs": [ "The second token of the pool by address sort order" ], "type": "pubkey" }, { "name": "tick_spacing", "docs": [ "The minimum number of ticks between initialized ticks" ], "type": "u16" }, { "name": "pool_state", "docs": [ "The address of the created pool" ], "type": "pubkey" }, { "name": "sqrt_price_x64", "docs": [ "The initial sqrt price of the pool, as a Q64.64" ], "type": "u128" }, { "name": "tick", "docs": [ "The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool" ], "type": "i32" }, { "name": "token_vault_0", "docs": [ "Vault of token_0" ], "type": "pubkey" }, { "name": "token_vault_1", "docs": [ "Vault of token_1" ], "type": "pubkey" } ] } }, { "name": "PoolState", "docs": [ "The pool state", "", "PDA of `[POOL_SEED, config, token_mint_0, token_mint_1]`", "" ], "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": { "array": [ "u8", 1 ] } }, { "name": "amm_config", "type": "pubkey" }, { "name": "owner", "type": "pubkey" }, { "name": "token_mint_0", "docs": [ "Token pair of the pool, where token_mint_0 address < token_mint_1 address" ], "type": "pubkey" }, { "name": "token_mint_1", "type": "pubkey" }, { "name": "token_vault_0", "docs": [ "Token pair vault" ], "type": "pubkey" }, { "name": "token_vault_1", "type": "pubkey" }, { "name": "observation_key", "docs": [ "observation account key" ], "type": "pubkey" }, { "name": "mint_decimals_0", "docs": [ "mint0 and mint1 decimals" ], "type": "u8" }, { "name": "mint_decimals_1", "type": "u8" }, { "name": "tick_spacing", "docs": [ "The minimum number of ticks between initialized ticks" ], "type": "u16" }, { "name": "liquidity", "docs": [ "The currently in range liquidity available to the pool." ], "type": "u128" }, { "name": "sqrt_price_x64", "docs": [ "The current price of the pool as a sqrt(token_1/token_0) Q64.64 value" ], "type": "u128" }, { "name": "tick_current", "docs": [ "The current tick of the pool, i.e. according to the last tick transition that was run." ], "type": "i32" }, { "name": "padding3", "type": "u16" }, { "name": "padding4", "type": "u16" }, { "name": "fee_growth_global_0_x64", "docs": [ "The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per", "unit of liquidity for the entire life of the pool." ], "type": "u128" }, { "name": "fee_growth_global_1_x64", "type": "u128" }, { "name": "protocol_fees_token_0", "docs": [ "The amounts of token_0 and token_1 that are owed to the protocol." ], "type": "u64" }, { "name": "protocol_fees_token_1", "type": "u64" }, { "name": "swap_in_amount_token_0", "docs": [ "The amounts in and out of swap token_0 and token_1" ], "type": "u128" }, { "name": "swap_out_amount_token_1", "type": "u128" }, { "name": "swap_in_amount_token_1", "type": "u128" }, { "name": "swap_out_amount_token_0", "type": "u128" }, { "name": "status", "docs": [ "Bitwise representation of the state of the pool", "bit0, 1: disable open position and increase liquidity, 0: normal", "bit1, 1: disable decrease liquidity, 0: normal", "bit2, 1: disable collect fee, 0: normal", "bit3, 1: disable collect reward, 0: normal", "bit4, 1: disable swap, 0: normal" ], "type": "u8" }, { "name": "padding", "docs": [ "Leave blank for future use" ], "type": { "array": [ "u8", 7 ] } }, { "name": "reward_infos", "type": { "array": [ { "defined": { "name": "RewardInfo" } }, 3 ] } }, { "name": "tick_array_bitmap", "docs": [ "Packed initialized tick array state" ], "type": { "array": [ "u64", 16 ] } }, { "name": "total_fees_token_0", "docs": [ "except protocol_fee and fund_fee" ], "type": "u64" }, { "name": "total_fees_claimed_token_0", "docs": [ "except protocol_fee and fund_fee" ], "type": "u64" }, { "name": "total_fees_token_1", "type": "u64" }, { "name": "total_fees_claimed_token_1", "type": "u64" }, { "name": "fund_fees_token_0", "type": "u64" }, { "name": "fund_fees_token_1", "type": "u64" }, { "name": "open_time", "type": "u64" }, { "name": "recent_epoch", "type": "u64" }, { "name": "padding1", "type": { "array": [ "u64", 24 ] } }, { "name": "padding2", "type": { "array": [ "u64", 32 ] } } ] } }, { "name": "PositionRewardInfo", "type": { "kind": "struct", "fields": [ { "name": "growth_inside_last_x64", "type": "u128" }, { "name": "reward_amount_owed", "type": "u64" } ] } }, { "name": "ProtocolPositionState", "docs": [ "Info stored for each user's position" ], "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": "u8" }, { "name": "pool_id", "docs": [ "The ID of the pool with which this token is connected" ], "type": "pubkey" }, { "name": "tick_lower_index", "docs": [ "The lower bound tick of the position" ], "type": "i32" }, { "name": "tick_upper_index", "docs": [ "The upper bound tick of the position" ], "type": "i32" }, { "name": "liquidity", "docs": [ "The amount of liquidity owned by this position" ], "type": "u128" }, { "name": "fee_growth_inside_0_last_x64", "docs": [ "The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed" ], "type": "u128" }, { "name": "fee_growth_inside_1_last_x64", "docs": [ "The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed" ], "type": "u128" }, { "name": "token_fees_owed_0", "docs": [ "The fees owed to the position owner in token_0" ], "type": "u64" }, { "name": "token_fees_owed_1", "docs": [ "The fees owed to the position owner in token_1" ], "type": "u64" }, { "name": "reward_growth_inside", "docs": [ "The reward growth per unit of liquidity as of the last update to liquidity" ], "type": { "array": [ "u128", 3 ] } }, { "name": "recent_epoch", "type": "u64" }, { "name": "padding", "type": { "array": [ "u64", 7 ] } } ] } }, { "name": "RewardInfo", "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "reward_state", "docs": [ "Reward state" ], "type": "u8" }, { "name": "open_time", "docs": [ "Reward open time" ], "type": "u64" }, { "name": "end_time", "docs": [ "Reward end time" ], "type": "u64" }, { "name": "last_update_time", "docs": [ "Reward last update time" ], "type": "u64" }, { "name": "emissions_per_second_x64", "docs": [ "Q64.64 number indicates how many tokens per second are earned per unit of liquidity." ], "type": "u128" }, { "name": "reward_total_emissioned", "docs": [ "The total amount of reward emissioned" ], "type": "u64" }, { "name": "reward_claimed", "docs": [ "The total amount of claimed reward" ], "type": "u64" }, { "name": "token_mint", "docs": [ "Reward token mint." ], "type": "pubkey" }, { "name": "token_vault", "docs": [ "Reward vault token account." ], "type": "pubkey" }, { "name": "authority", "docs": [ "The owner that has permission to set reward param" ], "type": "pubkey" }, { "name": "reward_growth_global_x64", "docs": [ "Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward", "emissions were turned on." ], "type": "u128" } ] } }, { "name": "SupportMintAssociated", "docs": [ "Holds the current owner of the factory" ], "type": { "kind": "struct", "fields": [ { "name": "bump", "docs": [ "Bump to identify PDA" ], "type": "u8" }, { "name": "mint", "docs": [ "Address of the supported token22 mint" ], "type": "pubkey" }, { "name": "padding", "type": { "array": [ "u64", 8 ] } } ] } }, { "name": "SwapEvent", "docs": [ "Emitted by when a swap is performed for a pool" ], "type": { "kind": "struct", "fields": [ { "name": "pool_state", "docs": [ "The pool for which token_0 and token_1 were swapped" ], "type": "pubkey" }, { "name": "sender", "docs": [ "The address that initiated the swap call, and that received the callback" ], "type": "pubkey" }, { "name": "token_account_0", "docs": [ "The payer token account in zero for one swaps, or the recipient token account", "in one for zero swaps" ], "type": "pubkey" }, { "name": "token_account_1", "docs": [ "The payer token account in one for zero swaps, or the recipient token account", "in zero for one swaps" ], "type": "pubkey" }, { "name": "amount_0", "docs": [ "The real delta amount of the token_0 of the pool or user" ], "type": "u64" }, { "name": "transfer_fee_0", "docs": [ "The transfer fee charged by the withheld_amount of the token_0" ], "type": "u64" }, { "name": "amount_1", "docs": [ "The real delta of the token_1 of the pool or user" ], "type": "u64" }, { "name": "transfer_fee_1", "docs": [ "The transfer fee charged by the withheld_amount of the token_1" ], "type": "u64" }, { "name": "zero_for_one", "docs": [ "if true, amount_0 is negtive and amount_1 is positive" ], "type": "bool" }, { "name": "sqrt_price_x64", "docs": [ "The sqrt(price) of the pool after the swap, as a Q64.64" ], "type": "u128" }, { "name": "liquidity", "docs": [ "The liquidity of the pool after the swap" ], "type": "u128" }, { "name": "tick", "docs": [ "The log base 1.0001 of price of the pool after the swap" ], "type": "i32" } ] } }, { "name": "TickArrayBitmapExtension", "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "pool_id", "type": "pubkey" }, { "name": "positive_tick_array_bitmap", "docs": [ "Packed initialized tick array state for start_tick_index is positive" ], "type": { "array": [ { "array": [ "u64", 8 ] }, 14 ] } }, { "name": "negative_tick_array_bitmap", "docs": [ "Packed initialized tick array state for start_tick_index is negitive" ], "type": { "array": [ { "array": [ "u64", 8 ] }, 14 ] } } ] } }, { "name": "TickArrayState", "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "pool_id", "type": "pubkey" }, { "name": "start_tick_index", "type": "i32" }, { "name": "ticks", "type": { "array": [ { "defined": { "name": "TickState" } }, 60 ] } }, { "name": "initialized_tick_count", "type": "u8" }, { "name": "recent_epoch", "type": "u64" }, { "name": "padding", "type": { "array": [ "u8", 107 ] } } ] } }, { "name": "TickState", "serialization": "bytemuckunsafe", "repr": { "kind": "c", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "tick", "type": "i32" }, { "name": "liquidity_net", "docs": [ "Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left)" ], "type": "i128" }, { "name": "liquidity_gross", "docs": [ "The total position liquidity that references this tick" ], "type": "u128" }, { "name": "fee_growth_outside_0_x64", "docs": [ "Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick)", "only has relative meaning, not absolute — the value depends on when the tick is initialized" ], "type": "u128" }, { "name": "fee_growth_outside_1_x64", "type": "u128" }, { "name": "reward_growths_outside_x64", "type": { "array": [ "u128", 3 ] } }, { "name": "padding", "type": { "array": [ "u32", 13 ] } } ] } }, { "name": "UpdateRewardInfosEvent", "docs": [ "Emitted when Reward are updated for a pool" ], "type": { "kind": "struct", "fields": [ { "name": "reward_growth_global_x64", "docs": [ "Reward info" ], "type": { "array": [ "u128", 3 ] } } ] } } ] }