{ "address": "GAMMA7meSFWaBXF25oSUgmGRwaW6sCMFLmBNiMSdbHVT", "metadata": { "name": "gamma", "version": "0.2.0", "spec": "0.1.0", "description": "Created with Anchor" }, "instructions": [ { "name": "add_or_update_actor", "discriminator": [ 113, 136, 228, 230, 107, 185, 128, 227 ], "accounts": [ { "name": "owner", "docs": [ "Only admin(multisig) can add or update actor" ], "writable": true, "signer": true }, { "name": "system_program", "address": "11111111111111111111111111111111" }, { "name": "actor", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 99, 116, 111, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "authority", "docs": [ "Account for which the actor is being created.", "This is the account that will be able to update the pool." ] } ], "args": [ { "name": "is_admin", "type": "bool" } ] }, { "name": "add_partner", "docs": [ "Admin-permissioned instruction to add a new partner to a pool", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 180, 111, 45, 157, 241, 187, 234, 88 ], "accounts": [ { "name": "authority", "signer": true }, { "name": "amm_config" }, { "name": "pool_state", "writable": true, "relations": [ "partner" ] }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "partner" } ], "args": [] }, { "name": "calculate_rewards", "docs": [ "Calculate rewards for the user", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 199, 115, 201, 124, 71, 81, 143, 252 ], "accounts": [ { "name": "signer", "writable": true, "signer": true }, { "name": "user", "docs": [ "User for which we are calculating rewards" ] }, { "name": "pool_state" }, { "name": "reward_info", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 114, 101, 119, 97, 114, 100, 95, 105, 110, 102, 111, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "reward_info.start_at", "account": "RewardInfo" }, { "kind": "account", "path": "reward_info.mint", "account": "RewardInfo" } ] } }, { "name": "user_reward_info", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 95, 114, 101, 119, 97, 114, 100, 95, 105, 110, 102, 111, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "reward_info" }, { "kind": "account", "path": "user" } ] } }, { "name": "user_pool_liquidity", "docs": [ "User pool liquidity account" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 45, 112, 111, 111, 108, 45, 108, 105, 113, 117, 105, 100, 105, 116, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "user" } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "claim_partner_fees", "docs": [ "Claim fees for a particular partner", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 114, 71, 103, 57, 160, 205, 242, 185 ], "accounts": [ { "name": "partner" }, { "name": "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 ] } ] } }, { "name": "pool_state" }, { "name": "token_0_vault", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_1_vault", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "vault_0_mint", "docs": [ "The mint of token_0 vault" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token_1 vault" ] }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "token_0_token_account", "writable": true, "relations": [ "partner" ] }, { "name": "token_1_token_account", "writable": true, "relations": [ "partner" ] }, { "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": "claim_rewards", "docs": [ "Claim rewards for the user", "Transfers the amount of tokens calculated for the user to their reward token account", "", "# Arguments", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 4, 144, 132, 71, 116, 23, 151, 80 ], "accounts": [ { "name": "user", "writable": true, "signer": true }, { "name": "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 ] } ] } }, { "name": "pool_state" }, { "name": "reward_info", "pda": { "seeds": [ { "kind": "const", "value": [ 114, 101, 119, 97, 114, 100, 95, 105, 110, 102, 111, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "reward_info.start_at", "account": "RewardInfo" }, { "kind": "account", "path": "reward_info.mint", "account": "RewardInfo" } ] } }, { "name": "reward_vault", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "reward_info" } ] } }, { "name": "user_token_account", "writable": true }, { "name": "user_reward_info", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 95, 114, 101, 119, 97, 114, 100, 95, 105, 110, 102, 111, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "reward_info" }, { "kind": "account", "path": "user" } ] } }, { "name": "reward_mint", "writable": true }, { "name": "token_program", "docs": [ "token Program" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "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": "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 ] } ] } }, { "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_0_vault", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_1_vault", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "vault_0_mint", "docs": [ "The mint of token_0 vault" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token_1 vault" ] }, { "name": "recipient_token_0_account", "docs": [ "The address that receives the collected token_0 fund fees" ], "writable": true }, { "name": "recipient_token_1_account", "docs": [ "The address that receives the collected token_1 fund 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 owner can collect fee now" ], "signer": true }, { "name": "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 ] } ] } }, { "name": "pool_state", "docs": [ "Pool state stores accumulated protocol fee amount" ], "writable": true }, { "name": "amm_config", "docs": [ "Amm config account stores owner" ] }, { "name": "token_0_vault", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_1_vault", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "vault_0_mint", "docs": [ "The mint of token_0 vault" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token_1 vault" ] }, { "name": "recipient_token_0_account", "docs": [ "The address that receives the collected token_0 protocol fees" ], "writable": true }, { "name": "recipient_token_1_account", "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": "create_amm_config", "docs": [ "The configuation of AMM protocol, include trade fee and protocol fee", "# Arguments", "", "* `ctx`- The accounts needed by instruction.", "* `index` - The index of amm config, there may be multiple config.", "* `trade_fee_rate` - Trade fee rate, can be changed.", "* `protocol_fee_rate` - The rate of protocol fee within tarde fee.", "* `fund_fee_rate` - The rate of fund fee within tarde 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": "9QcHinaHcJFdzSHeiF1yGchcuQk3qPFNV13q6dZJbAny" }, { "name": "amm_config", "docs": [ "Initialize AmmConfig 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": "trade_fee_rate", "type": "u64" }, { "name": "protocol_fee_rate", "type": "u64" }, { "name": "fund_fee_rate", "type": "u64" }, { "name": "create_pool_fee", "type": "u64" }, { "name": "max_open_time", "type": "u64" } ] }, { "name": "create_rewards", "docs": [ "Create rewards for the pool", "Initializes a new reward info account and a reward vault account", "Transfers the rewards to the reward vault", "", "# Arguments", "", "* `ctx` - The context of accounts", "* `start_time` - The start time of the reward", "* `end_time` - The end time of the reward", "* `reward_amount` - The amount of the reward", "" ], "discriminator": [ 124, 251, 145, 232, 5, 173, 159, 223 ], "accounts": [ { "name": "reward_provider", "writable": true, "signer": true }, { "name": "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 ] } ] } }, { "name": "pool_state" }, { "name": "reward_info", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 114, 101, 119, 97, 114, 100, 95, 105, 110, 102, 111, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "arg", "path": "start_time" }, { "kind": "account", "path": "reward_mint" } ] } }, { "name": "reward_providers_token_account", "writable": true }, { "name": "reward_vault", "docs": [ "For reward to deposit into." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116, 95, 115, 101, 101, 100 ] }, { "kind": "account", "path": "reward_info" } ] } }, { "name": "reward_mint", "writable": true }, { "name": "token_program", "docs": [ "token Program" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "start_time", "type": "u64" }, { "name": "end_time", "type": "u64" }, { "name": "reward_amount", "type": "u64" } ] }, { "name": "create_swap_referral", "docs": [ "Initialize swap referrals for an existing AMM config", "# Arguments", "", "* `ctx` - The accounts needed by the instruction, including those used by cpi to the referral program", "* `name` - The project name, passed to the referral program. Must be less than 50 chars in length", "* `default_share_bps` - Percentage share of fees to referrers. Must be less than 10_000" ], "discriminator": [ 67, 131, 93, 236, 56, 6, 40, 77 ], "accounts": [ { "name": "admin", "docs": [ "Admin signer for this operation" ], "signer": true }, { "name": "owner", "address": "9QcHinaHcJFdzSHeiF1yGchcuQk3qPFNV13q6dZJbAny" }, { "name": "payer", "writable": true, "signer": true }, { "name": "amm_config", "docs": [ "The config acts as the base for its referral project" ], "writable": true }, { "name": "project", "writable": true }, { "name": "system_program", "address": "11111111111111111111111111111111" }, { "name": "referral_program", "address": "REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3" } ], "args": [ { "name": "name", "type": "string" }, { "name": "default_share_bps", "type": "u16" } ] }, { "name": "deposit", "docs": [ "Creates a pool for the given token pair and the initial price", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `lp_token_amount` - Pool token amount to transfer. token_a and token_b amount are set by the current exchange rate and size of the pool", "* `maximum_token_0_amount` - Maximum token 0 amount to deposit, prevents excessive slippage", "* `maximum_token_1_amount` - Maximum token 1 amount to deposit, prevents excessive slippage", "" ], "discriminator": [ 242, 35, 198, 137, 82, 225, 242, 182 ], "accounts": [ { "name": "owner", "docs": [ "Owner of the liquidity provided" ], "signer": true }, { "name": "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 ] } ] } }, { "name": "pool_state", "docs": [ "Pool state the owner is depositing into" ], "writable": true }, { "name": "user_pool_liquidity", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 45, 112, 111, 111, 108, 45, 108, 105, 113, 117, 105, 100, 105, 116, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "owner" } ] } }, { "name": "token_0_account", "docs": [ "The payer's token account to deposit token_0" ], "writable": true }, { "name": "token_1_account", "docs": [ "The payer's token account to deposit token_1" ], "writable": true }, { "name": "token_0_vault", "docs": [ "Pool vault for token_0 to deposit into", "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_1_vault", "docs": [ "Pool vault for token_1 to deposit into", "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "token_program", "docs": [ "token Program" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "vault_0_mint", "docs": [ "The mint of token_0 vault" ] }, { "name": "vault_1_mint", "docs": [ "The mint of token_1 vault" ] }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } } ], "args": [ { "name": "lp_token_amount", "type": "u64" }, { "name": "maximum_token_0_amount", "type": "u64" }, { "name": "maximum_token_1_amount", "type": "u64" } ] }, { "name": "init_user_pool_liquidity", "discriminator": [ 227, 221, 200, 212, 36, 107, 149, 36 ], "accounts": [ { "name": "user", "writable": true, "signer": true }, { "name": "pool_state" }, { "name": "user_pool_liquidity", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 45, 112, 111, 111, 108, 45, 108, 105, 113, 117, 105, 100, 105, 116, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "user" } ] } }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "system_program", "docs": [ "To create a new program account" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "partner", "type": { "option": "pubkey" } } ] }, { "name": "initialize", "docs": [ "Creates a pool for the given token pair and the initial price", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `init_amount_0` - the initial amount_0 to deposit", "* `init_amount_1` - the initial amount_1 to deposit", "* `open_time` - the timestamp allowed for swap", "* `max_trade_fee_rate` - The maximum trade fee that can be charged on swaps", "* `volatility_factor` - The volatility factor of the pool to determine the trade fee", "" ], "discriminator": [ 175, 175, 109, 31, 13, 152, 155, 237 ], "accounts": [ { "name": "creator", "docs": [ "Address paying to create the pool. It can be anyone." ], "writable": true, "signer": true }, { "name": "amm_config", "docs": [ "Which amm config the pool belongs to" ] }, { "name": "authority", "docs": [ "sign transactions on behalf of the pool", "for vault and lp_mint" ], "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 ] } ] } }, { "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_0_mint" }, { "kind": "account", "path": "token_1_mint" } ] } }, { "name": "user_pool_liquidity", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 45, 112, 111, 111, 108, 45, 108, 105, 113, 117, 105, 100, 105, 116, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "creator" } ] } }, { "name": "token_0_mint", "docs": [ "Token_0 mint, the key must smaller than token_1 mint." ] }, { "name": "token_1_mint", "docs": [ "Token_1 mint, the key must greater than token_0 mint." ] }, { "name": "creator_token_0", "docs": [ "creator token 0 account" ], "writable": true }, { "name": "creator_token_1", "docs": [ "creator token 1 account" ], "writable": true }, { "name": "token_0_vault", "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_0_mint" } ] } }, { "name": "token_1_vault", "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_1_mint" } ] } }, { "name": "create_pool_fee", "docs": [ "create pool fee account" ], "writable": true, "address": "8PhehuioLjhJ35A5eavazJSwoXcA4J7WwzgoWDBDFSuY" }, { "name": "observation_state", "docs": [ "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": "token_program", "docs": [ "Program to create mint account and mint tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_0_program", "docs": [ "Spl token program or token program 2022" ] }, { "name": "token_1_program", "docs": [ "Spl token program or token program 2022" ] }, { "name": "associated_token_program", "docs": [ "Program to create an ATA for receiving position NFT" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "system_program", "docs": [ "To create a new program account" ], "address": "11111111111111111111111111111111" }, { "name": "rent", "docs": [ "Sysvar for program account" ], "address": "SysvarRent111111111111111111111111111111111" } ], "args": [ { "name": "init_amount_0", "type": "u64" }, { "name": "init_amount_1", "type": "u64" }, { "name": "open_time", "type": "u64" }, { "name": "max_trade_fee_rate", "type": "u64" }, { "name": "volatility_factor", "type": "u64" } ] }, { "name": "initialize_partner", "docs": [ "Creates a new `Partner` account associated with a certain pool", "", "* `ctx` - The context of accounts", "* `name` - The name associated with the partner", "* `token_0_token_account` - Token account for receiving token0 tokens", "* `token_1_token_account` - Token account for receiving token1 tokens", "" ], "discriminator": [ 165, 62, 179, 112, 129, 50, 173, 144 ], "accounts": [ { "name": "payer", "writable": true, "signer": true }, { "name": "authority", "signer": true }, { "name": "pool_state" }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "partner", "writable": true, "signer": true }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [ { "name": "name", "type": "string" }, { "name": "token_0_token_account", "type": "pubkey" }, { "name": "token_1_token_account", "type": "pubkey" } ] }, { "name": "initialize_pool_partners", "docs": [ "Initializes a new `PoolPartnerInfos` account unique to a particular pool", "", "* `ctx` - The context of accounts", "* `partner_share_rate` - A fraction representing the partner's share of protocol fees", "" ], "discriminator": [ 99, 11, 108, 186, 1, 126, 209, 251 ], "accounts": [ { "name": "payer", "writable": true, "signer": true }, { "name": "pool_state" }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "oracle_based_swap_base_input", "docs": [ "Swap the tokens in the pool base input amount, using oracle price and Curve calculator combined.", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `amount_in` - input amount to transfer, output to DESTINATION is based on the exchange rate", "* `minimum_amount_out` - Minimum amount of output token, prevents excessive slippage", "" ], "discriminator": [ 239, 82, 192, 187, 160, 26, 223, 223 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "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 ] } ] } }, { "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": "input_token_program", "docs": [ "SPL program for input token transfers" ] }, { "name": "output_token_program", "docs": [ "SPL program for output token transfers" ] }, { "name": "input_token_mint", "docs": [ "The mint of input token" ] }, { "name": "output_token_mint", "docs": [ "The mint of output token" ] }, { "name": "observation_state", "docs": [ "The program account for the most recent oracle observation" ], "writable": true } ], "args": [ { "name": "amount_in", "type": "u64" }, { "name": "minimum_amount_out", "type": "u64" } ] }, { "name": "pool_config_update", "discriminator": [ 196, 212, 99, 63, 59, 117, 248, 223 ], "accounts": [ { "name": "authority", "signer": true }, { "name": "pool_state", "writable": true }, { "name": "amm_config" } ], "args": [ { "name": "h1", "type": "u128" } ] }, { "name": "pool_config_update_v2", "discriminator": [ 228, 161, 199, 222, 53, 172, 121, 238 ], "accounts": [ { "name": "authority", "signer": true }, { "name": "pool_state", "writable": true }, { "name": "amm_config" } ], "args": [ { "name": "h1", "type": "u128" }, { "name": "price_fetched_at", "type": "u64" } ] }, { "name": "pool_config_update_v3", "discriminator": [ 123, 135, 23, 15, 174, 100, 120, 152 ], "accounts": [ { "name": "authority", "signer": true }, { "name": "pool_state", "writable": true }, { "name": "amm_config" }, { "name": "observation_state", "writable": true }, { "name": "actor", "pda": { "seeds": [ { "kind": "const", "value": [ 97, 99, 116, 111, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "h1", "type": "u128" }, { "name": "h2", "type": "u128" }, { "name": "price_fetched_at", "type": "u64" }, { "name": "min_trade_rate_at_oracle_price", "type": { "option": "u32" } }, { "name": "oracle_price_delay_fee_rate_per_second", "type": { "option": "u32" } }, { "name": "max_oracle_price_delay_fee", "type": { "option": "u32" } }, { "name": "drift_factor", "type": { "option": "u32" } }, { "name": "max_drift_factor", "type": { "option": "u32" } }, { "name": "volatility_factor", "type": { "option": "u64" } } ] }, { "name": "rebalance_kamino", "docs": [ "Migrate from Meteora Dlmm to Gamma" ], "discriminator": [ 153, 94, 34, 16, 92, 181, 147, 215 ], "accounts": [ { "name": "signer", "writable": true, "signer": true }, { "name": "gamma_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 ] } ] } }, { "name": "pool_state", "docs": [ "The program account of the pool in which the swap will be performed" ], "writable": true }, { "name": "token_vault", "docs": [ "The vault token account for token 0" ], "writable": true }, { "name": "token_mint", "writable": true }, { "name": "kamino_reserve", "writable": true }, { "name": "kamino_lending_market", "writable": true, "address": "7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF" }, { "name": "lending_market_authority" }, { "name": "reserve_liquidity_supply", "writable": true }, { "name": "reserve_collateral_mint", "writable": true }, { "name": "gamma_pool_destination_collateral", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 111, 111, 108, 95, 107, 97, 109, 105, 110, 111, 95, 100, 101, 112, 111, 115, 105, 116, 115 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "token_mint" } ] } }, { "name": "instruction_sysvar_account", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "liquidity_token_program" }, { "name": "collateral_token_program", "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "kamino_program", "address": "KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD" }, { "name": "token_program", "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "system_program", "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "swap_base_input", "docs": [ "Swap the tokens in the pool base input amount", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `amount_in` - input amount to transfer, output to DESTINATION is based on the exchange rate", "* `minimum_amount_out` - Minimum amount of output token, prevents excessive slippage", "" ], "discriminator": [ 143, 190, 90, 218, 196, 30, 51, 222 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "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 ] } ] } }, { "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": "input_token_program", "docs": [ "SPL program for input token transfers" ] }, { "name": "output_token_program", "docs": [ "SPL program for output token transfers" ] }, { "name": "input_token_mint", "docs": [ "The mint of input token" ] }, { "name": "output_token_mint", "docs": [ "The mint of output token" ] }, { "name": "observation_state", "docs": [ "The program account for the most recent oracle observation" ], "writable": true } ], "args": [ { "name": "amount_in", "type": "u64" }, { "name": "minimum_amount_out", "type": "u64" } ] }, { "name": "swap_base_output", "docs": [ "Swap the tokens in the pool base output amount", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `max_amount_in` - input amount prevents excessive slippage", "* `amount_out` - amount of output token", "" ], "discriminator": [ 55, 217, 98, 86, 163, 74, 180, 173 ], "accounts": [ { "name": "payer", "docs": [ "The user performing the swap" ], "signer": true }, { "name": "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 ] } ] } }, { "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": "input_token_program", "docs": [ "SPL program for input token transfers" ] }, { "name": "output_token_program", "docs": [ "SPL program for output token transfers" ] }, { "name": "input_token_mint", "docs": [ "The mint of input token" ] }, { "name": "output_token_mint", "docs": [ "The mint of output token" ] }, { "name": "observation_state", "docs": [ "The program account for the most recent oracle observation" ], "writable": true } ], "args": [ { "name": "_max_amount_in", "type": "u64" }, { "name": "_amount_out", "type": "u64" } ] }, { "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 vaule 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": "9QcHinaHcJFdzSHeiF1yGchcuQk3qPFNV13q6dZJbAny" }, { "name": "amm_config", "docs": [ "The amm config account to update" ], "writable": true } ], "args": [ { "name": "param", "type": "u16" }, { "name": "value", "type": "u64" } ] }, { "name": "update_partner", "docs": [ "Authority-permissioned instruction to update certain fields in a pool, e.g token-accounts", "", "* `ctx` - The context of accounts", "* `token_account_0` - (optional) update for the token_0_token_account field", "* `token_account_1` - (optional) update for the token_1_token_account field", "" ], "discriminator": [ 19, 112, 236, 81, 127, 55, 21, 196 ], "accounts": [ { "name": "authority", "signer": true, "relations": [ "partner" ] }, { "name": "partner", "writable": true } ], "args": [ { "name": "token_account_0", "type": { "option": "pubkey" } }, { "name": "token_account_1", "type": { "option": "pubkey" } } ] }, { "name": "update_partner_fees", "docs": [ "Updates claimable fee amounts for all `PartnerInfo`s in a `PoolPartnerInfos` account", "", "* `ctx` - The context of accounts", "" ], "discriminator": [ 154, 142, 122, 49, 239, 161, 232, 29 ], "accounts": [ { "name": "pool_state", "writable": true }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } } ], "args": [] }, { "name": "update_pool", "docs": [ "Update pool status for given vaule", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `param`- The param of pool status", "* `status` - The value", "" ], "discriminator": [ 239, 214, 170, 78, 36, 35, 30, 34 ], "accounts": [ { "name": "authority", "signer": true }, { "name": "pool_state", "writable": true }, { "name": "actor", "pda": { "seeds": [ { "kind": "const", "value": [ 97, 99, 116, 111, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "param", "type": "u32" }, { "name": "value", "type": "u64" } ] }, { "name": "withdraw", "docs": [ "Withdraw lp for token0 ande token1", "", "# Arguments", "", "* `ctx`- The context of accounts", "* `lp_token_amount` - Amount of pool tokens to burn. User receives an output of token a and b based on the percentage of the pool tokens that are returned.", "* `minimum_token_0_amount` - Minimum amount of token 0 to receive, prevents excessive slippage", "* `minimum_token_1_amount` - Minimum amount of token 1 to receive, prevents excessive slippage", "" ], "discriminator": [ 183, 18, 70, 156, 148, 109, 161, 34 ], "accounts": [ { "name": "owner", "docs": [ "Owner of the liquidity provided" ], "signer": true }, { "name": "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 ] } ] } }, { "name": "pool_state", "docs": [ "Pool state account" ], "writable": true }, { "name": "user_pool_liquidity", "docs": [ "User pool liquidity account" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 101, 114, 45, 112, 111, 111, 108, 45, 108, 105, 113, 117, 105, 100, 105, 116, 121 ] }, { "kind": "account", "path": "pool_state" }, { "kind": "account", "path": "owner" } ] } }, { "name": "token_0_account", "docs": [ "The owner's token account for receive token_0" ], "writable": true }, { "name": "token_1_account", "docs": [ "The owner's token account for receive token_1" ], "writable": true }, { "name": "token_0_vault", "docs": [ "The address that holds pool tokens for token_0" ], "writable": true }, { "name": "token_1_vault", "docs": [ "The address that holds pool tokens for token_1" ], "writable": true }, { "name": "token_program", "docs": [ "token Program" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "token_program_2022", "docs": [ "Token program 2022" ], "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" }, { "name": "vault_0_mint", "docs": [ "The mint of token_0 vault" ], "writable": true }, { "name": "vault_1_mint", "docs": [ "The mint of token_1 vault" ], "writable": true }, { "name": "pool_partners", "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 112, 97, 114, 116, 110, 101, 114, 95, 105, 110, 102, 111, 115 ] }, { "kind": "account", "path": "pool_state" } ] } }, { "name": "memo_program", "docs": [ "memo program" ], "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr" }, { "name": "kamino_program", "address": "KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD" }, { "name": "instruction_sysvar_account", "address": "Sysvar1nstructions1111111111111111111111111" } ], "args": [ { "name": "lp_token_amount", "type": "u64" }, { "name": "minimum_token_0_amount", "type": "u64" }, { "name": "minimum_token_1_amount", "type": "u64" } ] } ], "accounts": [ { "name": "Actor", "discriminator": [ 46, 77, 47, 204, 204, 54, 34, 88 ] }, { "name": "AmmConfig", "discriminator": [ 218, 244, 33, 104, 203, 203, 43, 111 ] }, { "name": "ObservationState", "discriminator": [ 122, 174, 197, 53, 129, 9, 165, 132 ] }, { "name": "Partner", "discriminator": [ 122, 43, 246, 239, 141, 56, 243, 182 ] }, { "name": "PoolPartnerInfos", "discriminator": [ 130, 98, 226, 231, 158, 49, 44, 231 ] }, { "name": "PoolState", "discriminator": [ 247, 237, 227, 245, 215, 195, 222, 70 ] }, { "name": "RewardInfo", "discriminator": [ 39, 7, 129, 22, 241, 96, 83, 133 ] }, { "name": "UserPoolLiquidity", "discriminator": [ 0, 141, 89, 29, 236, 6, 14, 15 ] }, { "name": "UserRewardInfo", "discriminator": [ 110, 57, 251, 139, 250, 236, 213, 178 ] } ], "types": [ { "name": "Actor", "type": { "kind": "struct", "fields": [ { "name": "authority", "type": "pubkey" }, { "name": "is_admin", "type": "bool" } ] } }, { "name": "AmmConfig", "type": { "kind": "struct", "fields": [ { "name": "bump", "type": "u8" }, { "name": "disable_create_pool", "type": "bool" }, { "name": "index", "docs": [ "Config index" ], "type": "u16" }, { "name": "trade_fee_rate", "docs": [ "The trade fee, denominated in hundredths of bip (10^-6)" ], "type": "u64" }, { "name": "protocol_fee_rate", "docs": [ "The protocol fee" ], "type": "u64" }, { "name": "fund_fee_rate", "docs": [ "The fund fee, denominated in hundredths of bip (10^-6)" ], "type": "u64" }, { "name": "create_pool_fee", "docs": [ "Fee for creating a new pool" ], "type": "u64" }, { "name": "protocol_owner", "docs": [ "Address of the protocol fee owner" ], "type": "pubkey" }, { "name": "fund_owner", "docs": [ "Address of the fund fee owner" ], "type": "pubkey" }, { "name": "referral_project", "docs": [ "Address of the referral project" ], "type": "pubkey" }, { "name": "max_open_time", "docs": [ "Max open time for a pool in seconds" ], "type": "u64" }, { "name": "secondary_admin", "type": "pubkey" }, { "name": "padding", "docs": [ "padding" ], "type": { "array": [ "u64", 7 ] } } ] } }, { "name": "LpChangeEvent", "docs": [ "Emitted when deposit or withdraw" ], "type": { "kind": "struct", "fields": [ { "name": "pool_id", "type": "pubkey" }, { "name": "lp_amount_before", "type": "u64" }, { "name": "token_0_vault_before", "type": "u64" }, { "name": "token_1_vault_before", "type": "u64" }, { "name": "token_0_amount", "type": "u64" }, { "name": "token_1_amount", "type": "u64" }, { "name": "token_0_transfer_fee", "type": "u64" }, { "name": "token_1_transfer_fee", "type": "u64" }, { "name": "change_type", "type": "u8" } ] } }, { "name": "MigrationEvent", "docs": [ "Emitted when migration" ], "type": { "kind": "struct", "fields": [ { "name": "from_pool", "type": "pubkey" }, { "name": "to_pool", "type": "pubkey" }, { "name": "token_0_amount_withdrawn", "type": "u64" }, { "name": "token_1_amount_withdrawn", "type": "u64" }, { "name": "lp_tokens_migrated", "type": "u128" } ] } }, { "name": "Observation", "docs": [ "The element of observations in ObservationState" ], "serialization": "bytemuckunsafe", "repr": { "kind": "rust", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "block_timestamp", "docs": [ "The block timestamp of the observation" ], "type": "u64" }, { "name": "cumulative_token_0_price_x32", "docs": [ "The cumulative of token0 price during the duration time, Q32.32, the remaining 64 bit for overflow" ], "type": "u128" }, { "name": "cumulative_token_1_price_x32", "docs": [ "The cumulative of token1 price during the duration time, Q32.32, the remaining 64 bit for overflow" ], "type": "u128" } ] } }, { "name": "ObservationState", "serialization": "bytemuckunsafe", "repr": { "kind": "rust", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "initialized", "docs": [ "Whether the ObservationState is enabled" ], "type": "bool" }, { "name": "observation_index", "docs": [ "The most recently updated index of the observations array" ], "type": "u16" }, { "name": "pool_id", "type": "pubkey" }, { "name": "observations", "docs": [ "observation array" ], "type": { "array": [ { "defined": { "name": "Observation" } }, 100 ] } }, { "name": "padding", "docs": [ "padding" ], "type": { "array": [ "u64", 4 ] } } ] } }, { "name": "Partner", "docs": [ "Account storing information for a protocol participating in the Gamma partner program" ], "type": { "kind": "struct", "fields": [ { "name": "name", "docs": [ "Protocol name" ], "type": "string" }, { "name": "authority", "docs": [ "The authority for this account" ], "type": "pubkey" }, { "name": "pool_state", "docs": [ "The pool which this partner account belongs to" ], "type": "pubkey" }, { "name": "token_0_token_account", "docs": [ "The token-account that receives token0 tokens" ], "type": "pubkey" }, { "name": "token_1_token_account", "docs": [ "The token-account that receives token1 tokens" ], "type": "pubkey" } ] } }, { "name": "PartnerInfo", "serialization": "bytemuckunsafe", "repr": { "kind": "rust", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "partner", "docs": [ "The address of the partner account." ], "type": "pubkey" }, { "name": "lp_token_linked_with_partner", "docs": [ "This stores the LP tokens that are linked with the partner, i.e owned by customers of the partner." ], "type": "u64" }, { "name": "total_claimed_fee_amount_token_0", "docs": [ "The total fee-amount token0 claimed by the partner" ], "type": "u64" }, { "name": "total_claimed_fee_amount_token_1", "docs": [ "The total fee-amount token1 claimed by the partner" ], "type": "u64" }, { "name": "total_earned_fee_amount_token_0", "docs": [ "The total fee-amount token0 calculated for the partner" ], "type": "u64" }, { "name": "total_earned_fee_amount_token_1", "docs": [ "The total fee-amount token1 calculated for the partner" ], "type": "u64" } ] } }, { "name": "PoolPartnerInfos", "docs": [ "PDA storing all the information for valid pool partners" ], "serialization": "bytemuckunsafe", "repr": { "kind": "rust", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "last_observed_fee_amount_token_0", "docs": [ "The observed fee-amount token0 as at the last infos update" ], "type": "u64" }, { "name": "last_observed_fee_amount_token_1", "docs": [ "The observed fee-amount token1 as at the last infos update" ], "type": "u64" }, { "name": "infos", "docs": [ "Partner infos" ], "type": { "array": [ { "defined": { "name": "PartnerInfo" } }, 5 ] } } ] } }, { "name": "PoolState", "serialization": "bytemuckunsafe", "repr": { "kind": "rust", "packed": true }, "type": { "kind": "struct", "fields": [ { "name": "amm_config", "docs": [ "To which AmmConfig the pool belongs to" ], "type": "pubkey" }, { "name": "pool_creator", "docs": [ "Pool Creator" ], "type": "pubkey" }, { "name": "token_0_vault", "docs": [ "Vault to store Token A of the pool" ], "type": "pubkey" }, { "name": "token_1_vault", "docs": [ "Vault to store Token B of the pool" ], "type": "pubkey" }, { "name": "h1", "docs": [ "Scaled to 9 decimal places.", "This means `token1/token0`" ], "type": "u128" }, { "name": "h2", "type": "u64" }, { "name": "h3", "type": "u32" }, { "name": "h4", "type": "u32" }, { "name": "token_0_mint", "docs": [ "Mint info of Token A" ], "type": "pubkey" }, { "name": "token_1_mint", "docs": [ "Mint info of Token B" ], "type": "pubkey" }, { "name": "token_0_program", "docs": [ "token_0 program" ], "type": "pubkey" }, { "name": "token_1_program", "docs": [ "token_1_program" ], "type": "pubkey" }, { "name": "observation_key", "docs": [ "Observation account to store the oracle data" ], "type": "pubkey" }, { "name": "auth_bump", "type": "u8" }, { "name": "status", "docs": [ "Bitwise represenation of the state of the pool", "Bit0: 1 - Disable Deposit(value will be 1), 0 - Deposit can be done(normal)", "Bit1: 1 - Disable Withdraw(value will be 2), 0 - Withdraw can be done(normal)", "Bit2: 1 - Disable Swap(value will be 4), 0 - Swap can be done(normal)" ], "type": "u8" }, { "name": "_padding2", "docs": [ "lp_mint decimals" ], "type": "u8" }, { "name": "mint_0_decimals", "docs": [ "mint0 and mint1 decimals" ], "type": "u8" }, { "name": "mint_1_decimals", "type": "u8" }, { "name": "lp_supply", "docs": [ "True circulating supply of lp_mint tokens without burns and lock-ups" ], "type": "u64" }, { "name": "protocol_fees_token_0", "docs": [ "The amount of token_0 and token_1 owed to Liquidity Provider" ], "type": "u64" }, { "name": "protocol_fees_token_1", "type": "u64" }, { "name": "fund_fees_token_0", "type": "u64" }, { "name": "fund_fees_token_1", "type": "u64" }, { "name": "open_time", "docs": [ "The timestamp allowed for swap in the pool" ], "type": "u64" }, { "name": "recent_epoch", "docs": [ "recent epoch" ], "type": "u64" }, { "name": "cumulative_trade_fees_token_0", "docs": [ "Trade fees of token_0 after every swap" ], "type": "u128" }, { "name": "cumulative_trade_fees_token_1", "docs": [ "Trade fees of token_1 after every swap" ], "type": "u128" }, { "name": "cumulative_volume_token_0", "docs": [ "Cummulative volume of token_0" ], "type": "u128" }, { "name": "cumulative_volume_token_1", "docs": [ "Cummulative volume of token_1" ], "type": "u128" }, { "name": "latest_dynamic_fee_rate", "docs": [ "latest dynamic fee rate" ], "type": "u64" }, { "name": "max_trade_fee_rate", "type": "u64" }, { "name": "volatility_factor", "type": "u64" }, { "name": "token_0_vault_amount", "type": "u64" }, { "name": "token_1_vault_amount", "type": "u64" }, { "name": "max_shared_token0", "type": "u64" }, { "name": "max_shared_token1", "type": "u64" }, { "name": "h16", "type": "u32" }, { "name": "h15", "type": "u32" }, { "name": "h14", "type": "u32" }, { "name": "h13", "type": "u32" }, { "name": "h12", "type": "u32" }, { "name": "h10", "type": "u32" }, { "name": "_padding3", "type": { "array": [ "u8", 8 ] } }, { "name": "token_0_amount_in_kamino", "type": "u64" }, { "name": "token_1_amount_in_kamino", "type": "u64" }, { "name": "withdrawn_kamino_profit_token_0", "type": "u64" }, { "name": "withdrawn_kamino_profit_token_1", "type": "u64" }, { "name": "partner_share_rate", "docs": [ "Fraction of protocol tokens shared with partners. Denominator is 1_000_000" ], "type": "u64" }, { "name": "partner_protocol_fees_token_0", "docs": [ "amount of protocol fees owed to referral partners(token0)" ], "type": "u64" }, { "name": "partner_protocol_fees_token_1", "docs": [ "amount of protocol fees owed to referral partners(token1)" ], "type": "u64" }, { "name": "min_swap_at_spot_price", "docs": [ "We later in future want to allow any LP to come and create a Pool of sol-usdc, where they can configure all the params.", "They also might want to define a max and min price for swaps, until which they want to allow swaps.", "This can be thought of similar to the ranges in CLMM.", "{token1/token0} with 9 Decimals" ], "type": "u64" }, { "name": "max_swap_at_spot_price", "type": "u64" }, { "name": "h20", "type": "u128" }, { "name": "padding", "docs": [ "padding" ], "type": { "array": [ "u64", 1 ] } } ] } }, { "name": "RewardInfo", "type": { "kind": "struct", "fields": [ { "name": "pool", "type": "pubkey" }, { "name": "start_at", "type": "u64" }, { "name": "end_rewards_at", "type": "u64" }, { "name": "mint", "type": "pubkey" }, { "name": "total_to_disburse", "type": "u64" }, { "name": "rewarded_by", "type": "pubkey" }, { "name": "amount_disbursed", "type": "u64" } ] } }, { "name": "SwapEvent", "type": { "kind": "struct", "fields": [ { "name": "pool_id", "type": "pubkey" }, { "name": "input_vault_before", "docs": [ "pool vault - trade_fees" ], "type": "u64" }, { "name": "output_vault_before", "docs": [ "pool_vault - trade_fees" ], "type": "u64" }, { "name": "input_amount", "docs": [ "calculate result without transfer fees" ], "type": "u64" }, { "name": "output_amount", "docs": [ "calculate result without transfer fees" ], "type": "u64" }, { "name": "input_mint", "docs": [ "input mint for the swap" ], "type": "pubkey" }, { "name": "output_mint", "docs": [ "output mint for the swap" ], "type": "pubkey" }, { "name": "input_transfer_fee", "docs": [ "transfer fees on input token using token extensions" ], "type": "u64" }, { "name": "output_transfer_fee", "docs": [ "transfer fees on output token using token extensions" ], "type": "u64" }, { "name": "base_input", "type": "bool" }, { "name": "dynamic_fee", "docs": [ "dynamic_fees after this swap" ], "type": "u128" } ] } }, { "name": "UserPoolLiquidity", "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" }, { "name": "pool_state", "type": "pubkey" }, { "name": "token_0_deposited", "type": "u128" }, { "name": "token_1_deposited", "type": "u128" }, { "name": "token_0_withdrawn", "type": "u128" }, { "name": "token_1_withdrawn", "type": "u128" }, { "name": "lp_tokens_owned", "type": "u128" }, { "name": "_p1", "type": "u64" }, { "name": "_p2", "type": "u8" }, { "name": "first_investment_at", "type": "u64" }, { "name": "partner", "type": { "option": "pubkey" } }, { "name": "padding", "type": { "array": [ "u8", 15 ] } } ] } }, { "name": "UserRewardInfo", "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" }, { "name": "reward_info", "type": "pubkey" }, { "name": "pool_state", "type": "pubkey" }, { "name": "total_claimed", "type": "u64" }, { "name": "total_rewards", "type": "u64" }, { "name": "rewards_last_calculated_at", "type": "u64" } ] } } ] }