diff --git a/README.md b/README.md index 7862161..b8cabe2 100644 --- a/README.md +++ b/README.md @@ -267,7 +267,7 @@ Optional builder methods: | `.slippage_basis_points(300)` | Set slippage. `300` means 3%. | | `.address_lookup_table_account(alt)` | Attach an ALT to reduce transaction size. Useful for large PumpFun V2 transactions. | | `.wait_tx_confirmed(true)` | Return only after confirmation. Usually disabled for fastest submit paths. | -| `.wait_for_all_submits(true)` | In fast-submit mode, wait for all SWQoS lane responses and return all signatures. | +| `.wait_for_all_submits(true)` | Wait for all SWQoS lane responses and return submitted signatures. Recent-blockhash route variants are not mutually exclusive; durable nonce variants are. | | `.simulate(true)` | Build and simulate the transaction instead of sending it. | | `.grpc_recv_us(ts)` | Attach upstream receive timestamp for latency tracing. | | `.durable_nonce(nonce_info)` | Use durable nonce and clear `recent_blockhash`. Recommended when you start from `SimpleBuyParams::new(...)` / `SimpleSellParams::new(...)`. | diff --git a/README_CN.md b/README_CN.md index 2ab5bad..ab8b09a 100755 --- a/README_CN.md +++ b/README_CN.md @@ -266,7 +266,7 @@ client.buy_simple(buy_params).await?; | `.slippage_basis_points(300)` | 设置滑点。`300` 表示 3%。 | | `.address_lookup_table_account(alt)` | 传入 ALT 以减少交易体积。PumpFun V2 交易较大时很有用。 | | `.wait_tx_confirmed(true)` | 等链上确认后再返回。追求最快提交时通常关闭。 | -| `.wait_for_all_submits(true)` | fast-submit 模式下等待所有 SWQoS 通道返回,并拿到全部签名。 | +| `.wait_for_all_submits(true)` | 等待所有 SWQoS 通道返回,并拿到已提交签名。recent blockhash 多路交易不互斥;durable nonce 多路交易互斥。 | | `.simulate(true)` | 只构建并模拟交易,不真正发送。 | | `.grpc_recv_us(ts)` | 传入上游收到事件的微秒时间戳,用于延迟追踪。 | | `.durable_nonce(nonce_info)` | 使用 durable nonce,并清空 `recent_blockhash`。如果你从 `SimpleBuyParams::new(...)` / `SimpleSellParams::new(...)` 开始构造,推荐用这个。 | diff --git a/docs/ADDRESS_LOOKUP_TABLE.md b/docs/ADDRESS_LOOKUP_TABLE.md index a0ad565..21d1ffb 100644 --- a/docs/ADDRESS_LOOKUP_TABLE.md +++ b/docs/ADDRESS_LOOKUP_TABLE.md @@ -19,7 +19,7 @@ Include lookup tables in your trade parameters: ```rust let lookup_table_key = Pubkey::from_str("use_your_lookup_table_key_here").unwrap(); -let address_lookup_table_account = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key).await.ok(); +let alt = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key).await?; // Include lookup table in trade parameters let buy_params = sol_trade_sdk::TradeBuyParams { @@ -29,7 +29,7 @@ let buy_params = sol_trade_sdk::TradeBuyParams { slippage_basis_points: Some(100), recent_blockhash: Some(recent_blockhash), extension_params: Box::new(PumpFunParams::from_trade(&trade_info, None)), - address_lookup_table_account: address_lookup_table_account, // Include lookup table + address_lookup_table_accounts: vec![alt], // One ALT wait_transaction_confirmed: true, create_wsol_ata: false, close_wsol_ata: false, @@ -41,6 +41,26 @@ let buy_params = sol_trade_sdk::TradeBuyParams { client.buy(buy_params).await?; ``` +Multiple lookup tables are also supported: + +```rust +let alt1 = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key_1).await?; +let alt2 = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key_2).await?; + +let params = SimpleBuyParams::new( + DexType::PumpFun, + TradeTokenType::SOL, + mint_pubkey, + BuyAmount::ExactInput(buy_lamports), + extension_params, + recent_blockhash, + gas_fee_strategy, +) +.address_lookup_table_accounts(vec![alt1, alt2]); +``` + +Use the same `address_lookup_table_accounts` field for one or many ALTs: `vec![alt]` for a single ALT, `vec![alt1, alt2]` for multiple ALTs. + ## 📊 Performance Comparison | Aspect | Without ALT | With ALT | Improvement | @@ -64,4 +84,4 @@ client.buy(buy_params).await?; ## 📚 External Resources -- [Solana Address Lookup Tables Documentation](https://docs.solana.com/developing/lookup-tables) \ No newline at end of file +- [Solana Address Lookup Tables Documentation](https://docs.solana.com/developing/lookup-tables) diff --git a/docs/ADDRESS_LOOKUP_TABLE_CN.md b/docs/ADDRESS_LOOKUP_TABLE_CN.md index 069a07b..6d1912e 100644 --- a/docs/ADDRESS_LOOKUP_TABLE_CN.md +++ b/docs/ADDRESS_LOOKUP_TABLE_CN.md @@ -19,7 +19,7 @@ ```rust let lookup_table_key = Pubkey::from_str("use_your_lookup_table_key_here").unwrap(); -let address_lookup_table_account = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key).await.ok(); +let alt = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key).await?; // 在交易参数中包含查找表 let buy_params = sol_trade_sdk::TradeBuyParams { @@ -29,7 +29,7 @@ let buy_params = sol_trade_sdk::TradeBuyParams { slippage_basis_points: Some(100), recent_blockhash: Some(recent_blockhash), extension_params: Box::new(PumpFunParams::from_trade(&trade_info, None)), - address_lookup_table_account: address_lookup_table_account, // 包含查找表 + address_lookup_table_accounts: vec![alt], // 1 个 ALT wait_transaction_confirmed: true, create_wsol_ata: false, close_wsol_ata: false, @@ -41,6 +41,26 @@ let buy_params = sol_trade_sdk::TradeBuyParams { client.buy(buy_params).await?; ``` +也支持同时传入多个查找表: + +```rust +let alt1 = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key_1).await?; +let alt2 = fetch_address_lookup_table_account(&client.rpc, &lookup_table_key_2).await?; + +let params = SimpleBuyParams::new( + DexType::PumpFun, + TradeTokenType::SOL, + mint_pubkey, + BuyAmount::ExactInput(buy_lamports), + extension_params, + recent_blockhash, + gas_fee_strategy, +) +.address_lookup_table_accounts(vec![alt1, alt2]); +``` + +单 ALT 和多 ALT 都使用同一个 `address_lookup_table_accounts` 字段:单 ALT 传 `vec![alt]`,多 ALT 传 `vec![alt1, alt2]`。 + ## 📊 性能对比 | 方面 | 不使用 ALT | 使用 ALT | 改进幅度 | @@ -64,4 +84,4 @@ client.buy(buy_params).await?; ## 📚 外部资源 -- [Solana 地址查找表文档](https://docs.solana.com/developing/lookup-tables) \ No newline at end of file +- [Solana 地址查找表文档](https://docs.solana.com/developing/lookup-tables) diff --git a/docs/NONCE_CACHE.md b/docs/NONCE_CACHE.md index 33b701e..62049f3 100644 --- a/docs/NONCE_CACHE.md +++ b/docs/NONCE_CACHE.md @@ -49,7 +49,6 @@ let buy_params = sol_trade_sdk::TradeBuyParams { slippage_basis_points: Some(100), recent_blockhash: Some(recent_blockhash), extension_params: Box::new(PumpFunParams::from_trade(&trade_info, None)), - address_lookup_table_account: None, wait_transaction_confirmed: true, create_wsol_ata: false, close_wsol_ata: false, diff --git a/docs/NONCE_CACHE_CN.md b/docs/NONCE_CACHE_CN.md index 4d89021..a8f891f 100644 --- a/docs/NONCE_CACHE_CN.md +++ b/docs/NONCE_CACHE_CN.md @@ -49,7 +49,6 @@ let buy_params = sol_trade_sdk::TradeBuyParams { slippage_basis_points: Some(100), recent_blockhash: Some(recent_blockhash), extension_params: Box::new(PumpFunParams::from_trade(&trade_info, None)), - address_lookup_table_account: None, wait_transaction_confirmed: true, create_wsol_ata: false, close_wsol_ata: false, diff --git a/docs/TRADING_PARAMETERS.md b/docs/TRADING_PARAMETERS.md index da4956b..7ed8edc 100644 --- a/docs/TRADING_PARAMETERS.md +++ b/docs/TRADING_PARAMETERS.md @@ -27,9 +27,9 @@ Use `SimpleBuyParams` and `SimpleSellParams` for new integrations. They keep the | `gas_fee_strategy` | `GasFeeStrategy` | ✅ | Compute unit price/limit and relay tip configuration. | | `slippage_basis_points` | `Option` | ❌ | Optional slippage override. `100` means 1%. | | `account_policy` | `AccountPolicy` | ❌ | ATA creation/close behavior. Default is `Auto`. | -| `address_lookup_table_account` | `Option` | ❌ | Optional ALT to reduce transaction size. | +| `address_lookup_table_accounts` | `Vec` | ❌ | Optional ALT list. Pass one element for a single ALT or multiple elements for multi-ALT to reduce transaction size. | | `wait_tx_confirmed` | `bool` | ❌ | Whether to wait for chain confirmation before returning. Default is `false`. | -| `wait_for_all_submits` | `bool` | ❌ | Fast-submit mode only: wait for every SWQoS lane response and return all signatures. | +| `wait_for_all_submits` | `bool` | ❌ | Wait for every SWQoS lane response and return submitted signatures; useful for poll-any confirmation or external monitoring. Recent-blockhash route variants are not mutually exclusive; durable nonce variants are. | | `durable_nonce` | `Option` | ❌ | Durable nonce info. Use `.durable_nonce(nonce_info)` or `SimpleBuyParams::with_durable_nonce(...)`; do not combine with `recent_blockhash`. | | `simulate` | `bool` | ❌ | Build and simulate instead of submitting. Default is `false`. | | `grpc_recv_us` | `Option` | ❌ | Upstream receive timestamp in microseconds for latency tracing. | @@ -47,9 +47,9 @@ Use `SimpleBuyParams` and `SimpleSellParams` for new integrations. They keep the | `gas_fee_strategy` | `GasFeeStrategy` | ✅ | Compute unit price/limit and relay tip configuration. | | `slippage_basis_points` | `Option` | ❌ | Optional slippage override. `100` means 1%. | | `account_policy` | `AccountPolicy` | ❌ | ATA creation/close behavior. Default is `Auto`. | -| `address_lookup_table_account` | `Option` | ❌ | Optional ALT to reduce transaction size. | +| `address_lookup_table_accounts` | `Vec` | ❌ | Optional ALT list. Pass one element for a single ALT or multiple elements for multi-ALT to reduce transaction size. | | `wait_tx_confirmed` | `bool` | ❌ | Whether to wait for chain confirmation before returning. Default is `false`. | -| `wait_for_all_submits` | `bool` | ❌ | Fast-submit mode only: wait for every SWQoS lane response and return all signatures. | +| `wait_for_all_submits` | `bool` | ❌ | Wait for every SWQoS lane response and return submitted signatures; useful for poll-any confirmation or external monitoring. Recent-blockhash route variants are not mutually exclusive; durable nonce variants are. | | `durable_nonce` | `Option` | ❌ | Durable nonce info. Use `.durable_nonce(nonce_info)` or `SimpleSellParams::with_durable_nonce(...)`; do not combine with `recent_blockhash`. | | `simulate` | `bool` | ❌ | Build and simulate instead of submitting. Default is `false`. | | `with_tip` | `bool` | ❌ | Whether sells include relay tips. Default is `true`; set with `.with_tip(false)`. | @@ -119,7 +119,6 @@ Calling `.durable_nonce(...)` clears `recent_blockhash`; nonce transactions use | Parameter | Type | Required | Description | |-----------|------|----------|-------------| -| `address_lookup_table_account` | `Option` | ❌ | Address lookup table for transaction optimization | | `wait_tx_confirmed` | `bool` | ✅ | Whether to wait for transaction confirmation | | `create_input_token_ata` | `bool` | ✅ | Whether to create input token Associated Token Account | | `close_input_token_ata` | `bool` | ✅ | Whether to close input token ATA after transaction | @@ -151,7 +150,6 @@ The `TradeSellParams` struct contains all parameters required for executing sell | Parameter | Type | Required | Description | |-----------|------|----------|-------------| -| `address_lookup_table_account` | `Option` | ❌ | Address lookup table for transaction optimization | | `wait_tx_confirmed` | `bool` | ✅ | Whether to wait for transaction confirmation | | `create_output_token_ata` | `bool` | ✅ | Whether to create output token Associated Token Account | | `close_output_token_ata` | `bool` | ✅ | Whether to close output token ATA after transaction | @@ -192,7 +190,7 @@ These parameters control automatic account creation and management: These parameters enable advanced optimizations: -- **address_lookup_table_account**: Use address lookup tables for reduced transaction size +- **address_lookup_table_accounts**: Use one or more address lookup tables for reduced transaction size ### 🔄 Token Type Parameters @@ -236,7 +234,7 @@ The account management parameters provide granular control: ### 🔍 Address Lookup Tables -Before using `address_lookup_table_account`: +Before using `address_lookup_table_accounts`: - Lookup tables reduce transaction size and improve success rates - Particularly beneficial for complex transactions with many account references diff --git a/docs/TRADING_PARAMETERS_CN.md b/docs/TRADING_PARAMETERS_CN.md index 57c0e0a..31434ef 100644 --- a/docs/TRADING_PARAMETERS_CN.md +++ b/docs/TRADING_PARAMETERS_CN.md @@ -27,9 +27,9 @@ | `gas_fee_strategy` | `GasFeeStrategy` | ✅ | CU price/limit 和 relay tip 配置。 | | `slippage_basis_points` | `Option` | ❌ | 可选滑点覆盖。`100` 表示 1%。 | | `account_policy` | `AccountPolicy` | ❌ | ATA 创建/关闭策略。默认 `Auto`。 | -| `address_lookup_table_account` | `Option` | ❌ | 可选 ALT,用于减少交易体积。 | +| `address_lookup_table_accounts` | `Vec` | ❌ | 可选 ALT 列表。传 1 个元素表示单 ALT,传多个元素表示多 ALT,用于减少交易体积。 | | `wait_tx_confirmed` | `bool` | ❌ | 是否等链上确认后再返回。默认 `false`。 | -| `wait_for_all_submits` | `bool` | ❌ | fast-submit 模式下,是否等待所有 SWQoS 通道返回并拿到全部签名。 | +| `wait_for_all_submits` | `bool` | ❌ | 是否等待所有 SWQoS 通道返回并拿到已提交签名;适合 poll-any 确认或外部监控。recent blockhash 多路交易不互斥;durable nonce 多路交易互斥。 | | `durable_nonce` | `Option` | ❌ | durable nonce 信息。使用 `.durable_nonce(nonce_info)` 或 `SimpleBuyParams::with_durable_nonce(...)` 设置,不要和 `recent_blockhash` 混用。 | | `simulate` | `bool` | ❌ | 只构建并模拟交易,不提交。默认 `false`。 | | `grpc_recv_us` | `Option` | ❌ | 上游收到事件的微秒时间戳,用于延迟追踪。 | @@ -47,9 +47,9 @@ | `gas_fee_strategy` | `GasFeeStrategy` | ✅ | CU price/limit 和 relay tip 配置。 | | `slippage_basis_points` | `Option` | ❌ | 可选滑点覆盖。`100` 表示 1%。 | | `account_policy` | `AccountPolicy` | ❌ | ATA 创建/关闭策略。默认 `Auto`。 | -| `address_lookup_table_account` | `Option` | ❌ | 可选 ALT,用于减少交易体积。 | +| `address_lookup_table_accounts` | `Vec` | ❌ | 可选 ALT 列表。传 1 个元素表示单 ALT,传多个元素表示多 ALT,用于减少交易体积。 | | `wait_tx_confirmed` | `bool` | ❌ | 是否等链上确认后再返回。默认 `false`。 | -| `wait_for_all_submits` | `bool` | ❌ | fast-submit 模式下,是否等待所有 SWQoS 通道返回并拿到全部签名。 | +| `wait_for_all_submits` | `bool` | ❌ | 是否等待所有 SWQoS 通道返回并拿到已提交签名;适合 poll-any 确认或外部监控。recent blockhash 多路交易不互斥;durable nonce 多路交易互斥。 | | `durable_nonce` | `Option` | ❌ | durable nonce 信息。使用 `.durable_nonce(nonce_info)` 或 `SimpleSellParams::with_durable_nonce(...)` 设置,不要和 `recent_blockhash` 混用。 | | `simulate` | `bool` | ❌ | 只构建并模拟交易,不提交。默认 `false`。 | | `with_tip` | `bool` | ❌ | 卖出交易是否带 relay tip。默认 `true`,可通过 `.with_tip(false)` 关闭。 | @@ -119,7 +119,6 @@ let buy_params = SimpleBuyParams::new( | 参数 | 类型 | 必需 | 描述 | |------|------|------|------| -| `address_lookup_table_account` | `Option` | ❌ | 用于交易优化的地址查找表 | | `wait_tx_confirmed` | `bool` | ✅ | 是否等待交易确认 | | `create_input_token_ata` | `bool` | ✅ | 是否创建输入代币关联代币账户 | | `close_input_token_ata` | `bool` | ✅ | 交易后是否关闭输入代币 ATA | @@ -151,7 +150,6 @@ let buy_params = SimpleBuyParams::new( | 参数 | 类型 | 必需 | 描述 | |------|------|------|------| -| `address_lookup_table_account` | `Option` | ❌ | 用于交易优化的地址查找表 | | `wait_tx_confirmed` | `bool` | ✅ | 是否等待交易确认 | | `create_output_token_ata` | `bool` | ✅ | 是否创建输出代币关联代币账户 | | `close_output_token_ata` | `bool` | ✅ | 交易后是否关闭输出代币 ATA | @@ -192,7 +190,7 @@ let buy_params = SimpleBuyParams::new( 这些参数启用高级优化: -- **address_lookup_table_account**: 使用地址查找表减少交易大小 +- **address_lookup_table_accounts**: 使用一个或多个地址查找表减少交易大小 ### 🔄 代币类型参数 @@ -236,7 +234,7 @@ let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment) ### 🔍 地址查找表 -使用 `address_lookup_table_account` 之前: +使用 `address_lookup_table_accounts` 之前: - 查找表减少交易大小并提高成功率 - 对于有许多账户引用的复杂交易特别有益 diff --git a/examples/address_lookup/src/main.rs b/examples/address_lookup/src/main.rs index d98a52d..9f91e8f 100644 --- a/examples/address_lookup/src/main.rs +++ b/examples/address_lookup/src/main.rs @@ -144,10 +144,9 @@ async fn pumpfun_copy_trade_with_grpc( let recent_blockhash = client.infrastructure.rpc.get_latest_blockhash().await?; let lookup_table_key = Pubkey::from_str("use_your_lookup_table_key_here").unwrap(); - let address_lookup_table_account = - fetch_address_lookup_table_account(&client.infrastructure.rpc, &lookup_table_key) - .await - .ok(); + let alt = fetch_address_lookup_table_account(&client.infrastructure.rpc, &lookup_table_key) + .await + .ok(); let gas_fee_strategy = GasFeeStrategy::new(); gas_fee_strategy.set_global_fee_strategy(150000, 150000, 500000, 500000, 0.001, 0.001); @@ -177,7 +176,7 @@ async fn pumpfun_copy_trade_with_grpc( trade_info.is_cashback_coin, Some(trade_info.mayhem_mode), )), - address_lookup_table_account, + address_lookup_table_accounts: alt.into_iter().collect(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: false, diff --git a/examples/bonk_copy_trading/src/main.rs b/examples/bonk_copy_trading/src/main.rs index 767ab5f..37a59bf 100644 --- a/examples/bonk_copy_trading/src/main.rs +++ b/examples/bonk_copy_trading/src/main.rs @@ -169,7 +169,7 @@ async fn bonk_copy_trade_with_grpc(trade_info: BonkTradeEvent) -> AnyResult<()> trade_info.creator_associated_account, trade_info.global_config, )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -221,7 +221,7 @@ async fn bonk_copy_trade_with_grpc(trade_info: BonkTradeEvent) -> AnyResult<()> trade_info.creator_associated_account, trade_info.global_config, )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, with_tip: false, diff --git a/examples/bonk_sniper_trading/src/main.rs b/examples/bonk_sniper_trading/src/main.rs index 3124edb..95b8eec 100644 --- a/examples/bonk_sniper_trading/src/main.rs +++ b/examples/bonk_sniper_trading/src/main.rs @@ -137,7 +137,7 @@ async fn bonk_sniper_trade_with_shreds(trade_info: BonkTradeEvent) -> AnyResult< trade_info.creator_associated_account, trade_info.global_config, )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -182,7 +182,7 @@ async fn bonk_sniper_trade_with_shreds(trade_info: BonkTradeEvent) -> AnyResult< trade_info.creator_associated_account, trade_info.global_config, )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, diff --git a/examples/cli_trading/src/main.rs b/examples/cli_trading/src/main.rs index 639ac85..b3c93a2 100644 --- a/examples/cli_trading/src/main.rs +++ b/examples/cli_trading/src/main.rs @@ -626,7 +626,7 @@ async fn handle_buy_pumpfun( slippage_basis_points: slippage, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::PumpFun(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: false, @@ -683,7 +683,7 @@ async fn handle_buy_pumpswap( slippage_basis_points: slippage, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::PumpSwap(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -740,7 +740,7 @@ async fn handle_buy_bonk( slippage_basis_points: slippage, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::Bonk(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -801,7 +801,7 @@ async fn handle_buy_raydium_v4( slippage_basis_points: slippage, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::RaydiumAmmV4(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -863,7 +863,7 @@ async fn handle_buy_raydium_cpmm( slippage_basis_points: slippage, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::RaydiumCpmm(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -1034,7 +1034,7 @@ async fn handle_sell_pumpfun( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::PumpFun(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, @@ -1094,7 +1094,7 @@ async fn handle_sell_pumpswap( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::PumpSwap(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, @@ -1154,7 +1154,7 @@ async fn handle_sell_bonk( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::Bonk(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, @@ -1217,7 +1217,7 @@ async fn handle_sell_raydium_v4( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::RaydiumAmmV4(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, @@ -1281,7 +1281,7 @@ async fn handle_sell_raydium_cpmm( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::RaydiumCpmm(param), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, diff --git a/examples/meteora_damm_v2_direct_trading/src/main.rs b/examples/meteora_damm_v2_direct_trading/src/main.rs index 23000a2..9309a11 100644 --- a/examples/meteora_damm_v2_direct_trading/src/main.rs +++ b/examples/meteora_damm_v2_direct_trading/src/main.rs @@ -41,7 +41,7 @@ async fn main() -> Result<(), Box> { MeteoraDammV2Params::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool) .await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: false, //if input token is SOL/WSOL,set to true,if input token is USDC,set to false. @@ -83,7 +83,7 @@ async fn main() -> Result<(), Box> { MeteoraDammV2Params::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool) .await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: false, //if output token is SOL/WSOL,set to true,if output token is USDC,set to false. diff --git a/examples/middleware_system/src/main.rs b/examples/middleware_system/src/main.rs index d49017b..4186642 100644 --- a/examples/middleware_system/src/main.rs +++ b/examples/middleware_system/src/main.rs @@ -102,7 +102,7 @@ async fn test_middleware() -> AnyResult<()> { PumpSwapParams::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool_address) .await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, diff --git a/examples/nonce_cache/src/main.rs b/examples/nonce_cache/src/main.rs index 96c4a83..c78d995 100644 --- a/examples/nonce_cache/src/main.rs +++ b/examples/nonce_cache/src/main.rs @@ -173,7 +173,7 @@ async fn pumpfun_copy_trade_with_grpc( trade_info.is_cashback_coin, Some(trade_info.mayhem_mode), )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: false, diff --git a/examples/pumpfun_copy_trading/src/main.rs b/examples/pumpfun_copy_trading/src/main.rs index bd4b9b8..504dd1f 100644 --- a/examples/pumpfun_copy_trading/src/main.rs +++ b/examples/pumpfun_copy_trading/src/main.rs @@ -167,7 +167,7 @@ async fn pumpfun_copy_trade(e: sol_parser_sdk::core::events::PumpFunTradeEvent) e.is_cashback_coin, Some(e.mayhem_mode), )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: false, @@ -219,7 +219,7 @@ async fn pumpfun_copy_trade(e: sol_parser_sdk::core::events::PumpFunTradeEvent) e.is_cashback_coin, Some(e.mayhem_mode), )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: false, diff --git a/examples/pumpfun_sniper_trading/src/main.rs b/examples/pumpfun_sniper_trading/src/main.rs index 72b5300..aec84ab 100644 --- a/examples/pumpfun_sniper_trading/src/main.rs +++ b/examples/pumpfun_sniper_trading/src/main.rs @@ -156,7 +156,7 @@ async fn pumpfun_sniper_trade(e: sol_parser_sdk::core::events::PumpFunTradeEvent e.is_cashback_coin, Some(e.mayhem_mode), )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -202,7 +202,7 @@ async fn pumpfun_sniper_trade(e: sol_parser_sdk::core::events::PumpFunTradeEvent e.is_cashback_coin, Some(e.mayhem_mode), )), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, diff --git a/examples/pumpswap_direct_trading/src/main.rs b/examples/pumpswap_direct_trading/src/main.rs index c27ab8a..075b698 100644 --- a/examples/pumpswap_direct_trading/src/main.rs +++ b/examples/pumpswap_direct_trading/src/main.rs @@ -40,7 +40,7 @@ async fn main() -> Result<(), Box> { extension_params: DexParamEnum::PumpSwap( PumpSwapParams::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool).await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -80,7 +80,7 @@ async fn main() -> Result<(), Box> { extension_params: DexParamEnum::PumpSwap( PumpSwapParams::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool).await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, diff --git a/examples/pumpswap_trading/src/main.rs b/examples/pumpswap_trading/src/main.rs index 114772d..3eb7d6a 100644 --- a/examples/pumpswap_trading/src/main.rs +++ b/examples/pumpswap_trading/src/main.rs @@ -234,7 +234,7 @@ async fn pumpswap_trade_with_grpc( slippage_basis_points: slippage_basis_points, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::PumpSwap(params.clone()), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: is_sol, @@ -276,7 +276,7 @@ async fn pumpswap_trade_with_grpc( recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::PumpSwap(params.clone()), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: is_sol, diff --git a/examples/raydium_amm_v4_trading/src/main.rs b/examples/raydium_amm_v4_trading/src/main.rs index 79a8a10..291d54b 100644 --- a/examples/raydium_amm_v4_trading/src/main.rs +++ b/examples/raydium_amm_v4_trading/src/main.rs @@ -155,7 +155,7 @@ async fn raydium_amm_v4_copy_trade_with_grpc(trade_info: RaydiumAmmV4SwapEvent) slippage_basis_points: slippage_basis_points, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::RaydiumAmmV4(params), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: is_wsol, @@ -198,7 +198,7 @@ async fn raydium_amm_v4_copy_trade_with_grpc(trade_info: RaydiumAmmV4SwapEvent) recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::RaydiumAmmV4(params), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: is_wsol, diff --git a/examples/raydium_cpmm_trading/src/main.rs b/examples/raydium_cpmm_trading/src/main.rs index 94a1d3d..f6d66bb 100644 --- a/examples/raydium_cpmm_trading/src/main.rs +++ b/examples/raydium_cpmm_trading/src/main.rs @@ -159,7 +159,7 @@ async fn raydium_cpmm_copy_trade_with_grpc(trade_info: RaydiumCpmmSwapEvent) -> slippage_basis_points: slippage_basis_points, recent_blockhash: Some(recent_blockhash), extension_params: DexParamEnum::RaydiumCpmm(buy_params), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: is_wsol, @@ -200,7 +200,7 @@ async fn raydium_cpmm_copy_trade_with_grpc(trade_info: RaydiumCpmmSwapEvent) -> recent_blockhash: Some(recent_blockhash), with_tip: false, extension_params: DexParamEnum::RaydiumCpmm(sell_params), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: is_wsol, diff --git a/examples/seed_trading/src/main.rs b/examples/seed_trading/src/main.rs index a4f3de6..3ebb8b3 100644 --- a/examples/seed_trading/src/main.rs +++ b/examples/seed_trading/src/main.rs @@ -40,7 +40,7 @@ async fn main() -> Result<(), Box> { extension_params: DexParamEnum::PumpSwap( PumpSwapParams::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool).await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_input_token_ata: true, @@ -83,7 +83,7 @@ async fn main() -> Result<(), Box> { extension_params: DexParamEnum::PumpSwap( PumpSwapParams::from_pool_address_by_rpc(&client.infrastructure.rpc, &pool).await?, ), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: true, wait_for_all_submits: false, create_output_token_ata: true, diff --git a/idl/meteora_amm.json b/idl/meteora_amm.json new file mode 100644 index 0000000..b04521e --- /dev/null +++ b/idl/meteora_amm.json @@ -0,0 +1,2483 @@ +{ + "version": "0.4.12", + "name": "amm", + "docs": ["Program for AMM"], + "instructions": [ + { + "name": "initializePermissionedPool", + "docs": ["Initialize a new permissioned pool."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": true, + "docs": ["Pool account (arbitrary address)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": ["Token A mint of the pool. Eg: USDT"] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": ["Token B mint of the pool. Eg: USDC"] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault A"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault B"] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "adminTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "adminTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "adminPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin pool LP token account. Used to receive LP during first deposit (initialize pool)", + "Admin pool LP token account. Used to receive LP during first deposit (initialize pool)" + ] + }, + { + "name": "adminTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "adminTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "admin", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { "name": "feeOwner", "isMut": false, "isSigner": false }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": ["Rent account."] + }, + { "name": "mintMetadata", "isMut": true, "isSigner": false }, + { "name": "metadataProgram", "isMut": false, "isSigner": false }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Associated token program."] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + } + ], + "args": [{ "name": "curveType", "type": { "defined": "CurveType" } }] + }, + { + "name": "initializePermissionlessPool", + "docs": ["Initialize a new permissionless pool."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA address)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": ["Token A mint of the pool. Eg: USDT"] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": ["Token B mint of the pool. Eg: USDC"] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault A"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault B"] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { "name": "payerPoolLp", "isMut": true, "isSigner": false }, + { + "name": "adminTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "adminTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { "name": "feeOwner", "isMut": false, "isSigner": false }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": ["Rent account."] + }, + { "name": "mintMetadata", "isMut": true, "isSigner": false }, + { "name": "metadataProgram", "isMut": false, "isSigner": false }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Associated token program."] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + } + ], + "args": [ + { "name": "curveType", "type": { "defined": "CurveType" } }, + { "name": "tokenAAmount", "type": "u64" }, + { "name": "tokenBAmount", "type": "u64" } + ] + }, + { + "name": "initializePermissionlessPoolWithFeeTier", + "docs": ["Initialize a new permissionless pool with customized fee tier"], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA address)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": ["Token A mint of the pool. Eg: USDT"] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": ["Token B mint of the pool. Eg: USDC"] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault A"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault B"] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { "name": "payerPoolLp", "isMut": true, "isSigner": false }, + { + "name": "adminTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "adminTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { "name": "feeOwner", "isMut": false, "isSigner": false }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": ["Rent account."] + }, + { "name": "mintMetadata", "isMut": true, "isSigner": false }, + { "name": "metadataProgram", "isMut": false, "isSigner": false }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Associated token program."] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + } + ], + "args": [ + { "name": "curveType", "type": { "defined": "CurveType" } }, + { "name": "tradeFeeBps", "type": "u64" }, + { "name": "tokenAAmount", "type": "u64" }, + { "name": "tokenBAmount", "type": "u64" } + ] + }, + { + "name": "enableOrDisablePool", + "docs": [ + "Enable or disable a pool. A disabled pool allow only remove balanced liquidity operation." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": ["Admin account. Must be owner of the pool."] + } + ], + "args": [{ "name": "enable", "type": "bool" }] + }, + { + "name": "swap", + "docs": [ + "Swap token A to B, or vice versa. An amount of trading fee will be charged for liquidity provider, and the admin of the pool." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "userSourceToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account. Token from this account will be transfer into the vault by the pool in exchange for another token of the pool." + ] + }, + { + "name": "userDestinationToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account. The exchanged token will be transfer into this account from the pool." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["Lp token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["Lp token mint of vault b"] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "adminTokenFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account. Used to receive trading fee. It's mint field must matched with user_source_token mint field." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": ["User account. Must be owner of user_source_token."] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "inAmount", "type": "u64" }, + { "name": "minimumOutAmount", "type": "u64" } + ] + }, + { + "name": "removeLiquiditySingleSide", + "docs": [ + "Withdraw only single token from the pool. Only supported by pool with stable swap curve." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "User pool lp token account. LP will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault A"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault B"] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "userDestinationToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account to receive token upon success liquidity removal." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": ["User account. Must be owner of the user_pool_lp account."] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "poolTokenAmount", "type": "u64" }, + { "name": "minimumOutAmount", "type": "u64" } + ] + }, + { + "name": "addImbalanceLiquidity", + "docs": [ + "Deposit tokens to the pool in an imbalance ratio. Only supported by pool with stable swap curve." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault b"] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "minimumPoolTokenAmount", "type": "u64" }, + { "name": "tokenAAmount", "type": "u64" }, + { "name": "tokenBAmount", "type": "u64" } + ] + }, + { + "name": "removeBalanceLiquidity", + "docs": [ + "Withdraw tokens from the pool in a balanced ratio. User will still able to withdraw from pool even the pool is disabled. This allow user to exit their liquidity when there's some unforeseen event happen." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault b"] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "poolTokenAmount", "type": "u64" }, + { "name": "minimumATokenOut", "type": "u64" }, + { "name": "minimumBTokenOut", "type": "u64" } + ] + }, + { + "name": "addBalanceLiquidity", + "docs": ["Deposit tokens to the pool in a balanced ratio."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault b"] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "poolTokenAmount", "type": "u64" }, + { "name": "maximumTokenAAmount", "type": "u64" }, + { "name": "maximumTokenBAmount", "type": "u64" } + ] + }, + { + "name": "setPoolFees", + "docs": ["Update trading fee charged for liquidity provider, and admin."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": ["Admin account. Must be owner of the pool."] + } + ], + "args": [{ "name": "fees", "type": { "defined": "PoolFees" } }] + }, + { + "name": "overrideCurveParam", + "docs": [ + "Update swap curve parameters. This function do not allow update of curve type. For example: stable swap curve to constant product curve. Only supported by pool with stable swap curve.", + "Only amp is allowed to be override. The other attributes of stable swap curve will be ignored." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": ["Admin account. Must be owner of the pool."] + } + ], + "args": [{ "name": "curveType", "type": { "defined": "CurveType" } }] + }, + { + "name": "transferAdmin", + "docs": ["Transfer the admin of the pool to new admin."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": ["Admin account. Must be owner of the pool."] + }, + { + "name": "newAdmin", + "isMut": false, + "isSigner": true, + "docs": ["New admin account."] + } + ], + "args": [] + }, + { + "name": "getPoolInfo", + "docs": ["Get the general information of the pool."], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of vault b"] + } + ], + "args": [] + }, + { + "name": "bootstrapLiquidity", + "docs": ["Bootstrap the pool when liquidity is depleted."], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account (PDA)"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault b"] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + } + ], + "args": [ + { "name": "tokenAAmount", "type": "u64" }, + { "name": "tokenBAmount", "type": "u64" } + ] + }, + { + "name": "migrateFeeAccount", + "docs": ["Migrate old token fee owner to PDA"], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account"] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": ["A vault LP token account of the pool."] + }, + { + "name": "adminTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "adminTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": ["Token A mint"] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": ["Token B mint"] + }, + { + "name": "newAdminTokenAFee", + "isMut": true, + "isSigner": false, + "docs": ["Token fee account. Controlled by pool a_vault_lp PDA."] + }, + { + "name": "newAdminTokenBFee", + "isMut": true, + "isSigner": false, + "docs": ["Token fee account. Controlled by pool a_vault_lp PDA."] + }, + { + "name": "admin", + "isMut": true, + "isSigner": true, + "docs": ["Admin account. Must be owner of the pool."] + }, + { + "name": "treasuryTokenAFee", + "isMut": true, + "isSigner": false, + "docs": ["Treasury token a fee ATA."] + }, + { + "name": "treasuryTokenBFee", + "isMut": true, + "isSigner": false, + "docs": ["Treasury token b fee ATA."] + }, + { + "name": "treasury", + "isMut": false, + "isSigner": true, + "docs": ["Treasury signer"] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + } + ], + "args": [] + }, + { + "name": "createMintMetadata", + "docs": ["Create mint metadata account for old pools"], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": ["Pool account"] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP mint account of the pool"] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": ["Vault A LP account of the pool"] + }, + { "name": "mintMetadata", "isMut": true, "isSigner": false }, + { "name": "metadataProgram", "isMut": false, "isSigner": false }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + }, + { "name": "payer", "isMut": true, "isSigner": true, "docs": ["Payer"] } + ], + "args": [] + }, + { + "name": "createLockEscrow", + "docs": ["Create lock account"], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": ["Pool account"] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": ["Lock account"] + }, + { "name": "owner", "isMut": false, "isSigner": false }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": ["Payer account"] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": ["System program."] + } + ], + "args": [] + }, + { + "name": "lock", + "docs": ["Lock Lp token"], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account"] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": ["Lock account"] + }, + { + "name": "owner", + "isMut": true, + "isSigner": true, + "docs": ["Owner of lock account"] + }, + { + "name": "sourceTokens", + "isMut": true, + "isSigner": false, + "docs": ["owner lp token account"] + }, + { + "name": "escrowVault", + "isMut": true, + "isSigner": false, + "docs": ["Escrow vault"] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "aVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": ["LP token mint of vault b"] + } + ], + "args": [{ "name": "amount", "type": "u64" }] + }, + { + "name": "claimFee", + "docs": ["Claim fee"], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": ["Pool account"] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of the pool"] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": ["Lock account"] + }, + { + "name": "owner", + "isMut": true, + "isSigner": true, + "docs": ["Owner of lock account"] + }, + { + "name": "sourceTokens", + "isMut": true, + "isSigner": false, + "docs": ["owner lp token account"] + }, + { + "name": "escrowVault", + "isMut": true, + "isSigner": false, + "docs": ["Escrow vault"] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": ["Token program."] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault A"] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": ["Token vault account of vault B"] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault a"] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": ["LP token mint of vault b"] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + } + ], + "args": [{ "name": "maxAmount", "type": "u64" }] + } + ], + "accounts": [ + { + "name": "Pool", + "docs": ["State of pool account"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "lpMint", + "docs": ["LP token mint of the pool"], + "type": "publicKey" + }, + { + "name": "tokenAMint", + "docs": ["Token A mint of the pool. Eg: USDT"], + "type": "publicKey" + }, + { + "name": "tokenBMint", + "docs": ["Token B mint of the pool. Eg: USDC"], + "type": "publicKey" + }, + { + "name": "aVault", + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ], + "type": "publicKey" + }, + { + "name": "bVault", + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ], + "type": "publicKey" + }, + { + "name": "aVaultLp", + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ], + "type": "publicKey" + }, + { + "name": "bVaultLp", + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ], + "type": "publicKey" + }, + { + "name": "aVaultLpBump", + "docs": ["\"A\" vault lp bump. Used to create signer seeds."], + "type": "u8" + }, + { + "name": "enabled", + "docs": [ + "Flag to determine whether the pool is enabled, or disabled." + ], + "type": "bool" + }, + { + "name": "adminTokenAFee", + "docs": [ + "Admin fee token account for token A. Used to receive trading fee." + ], + "type": "publicKey" + }, + { + "name": "adminTokenBFee", + "docs": [ + "Admin fee token account for token B. Used to receive trading fee." + ], + "type": "publicKey" + }, + { + "name": "admin", + "docs": ["Owner of the pool."], + "type": "publicKey" + }, + { + "name": "fees", + "docs": ["Store the fee charges setting."], + "type": { "defined": "PoolFees" } + }, + { + "name": "poolType", + "docs": ["Pool type"], + "type": { "defined": "PoolType" } + }, + { + "name": "stake", + "docs": ["Stake pubkey of SPL stake pool"], + "type": "publicKey" + }, + { + "name": "totalLockedLp", + "docs": ["Total locked lp token"], + "type": "u64" + }, + { + "name": "padding", + "docs": ["Padding for future pool field"], + "type": { "defined": "Padding" } + }, + { + "name": "curveType", + "docs": ["The type of the swap curve supported by the pool."], + "type": { "defined": "CurveType" } + } + ] + } + }, + { + "name": "LockEscrow", + "docs": ["State of lock escrow account"], + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "docs": ["Pool address"], "type": "publicKey" }, + { "name": "owner", "docs": ["Owner address"], "type": "publicKey" }, + { + "name": "escrowVault", + "docs": ["Vault address, store the lock user lock"], + "type": "publicKey" + }, + { "name": "bump", "docs": ["bump, used to sign"], "type": "u8" }, + { + "name": "totalLockedAmount", + "docs": ["Total locked amount"], + "type": "u64" + }, + { + "name": "lpPerToken", + "docs": ["Lp per token, virtual price of lp token"], + "type": "u128" + }, + { + "name": "unclaimedFeePending", + "docs": ["Unclaimed fee pending"], + "type": "u64" + }, + { + "name": "aFee", + "docs": ["Total a fee claimed so far"], + "type": "u64" + }, + { + "name": "bFee", + "docs": ["Total b fee claimed so far"], + "type": "u64" + } + ] + } + } + ], + "types": [ + { + "name": "TokenMultiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenAMultiplier", + "docs": ["Multiplier for token A of the pool."], + "type": "u64" + }, + { + "name": "tokenBMultiplier", + "docs": ["Multiplier for token B of the pool."], + "type": "u64" + }, + { + "name": "precisionFactor", + "docs": [ + "Record the highest token decimal in the pool. For example, Token A is 6 decimal, token B is 9 decimal. This will save value of 9." + ], + "type": "u8" + } + ] + } + }, + { + "name": "PoolFees", + "docs": ["Information regarding fee charges"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tradeFeeNumerator", + "docs": [ + "Trade fees are extra token amounts that are held inside the token", + "accounts during a trade, making the value of liquidity tokens rise.", + "Trade fee numerator" + ], + "type": "u64" + }, + { + "name": "tradeFeeDenominator", + "docs": ["Trade fee denominator"], + "type": "u64" + }, + { + "name": "ownerTradeFeeNumerator", + "docs": [ + "Owner trading fees are extra token amounts that are held inside the token", + "accounts during a trade, with the equivalent in pool tokens minted to", + "the owner of the program.", + "Owner trade fee numerator" + ], + "type": "u64" + }, + { + "name": "ownerTradeFeeDenominator", + "docs": ["Owner trade fee denominator"], + "type": "u64" + } + ] + } + }, + { + "name": "Depeg", + "docs": ["Contains information for depeg pool"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseVirtualPrice", + "docs": ["The virtual price of staking / interest bearing token"], + "type": "u64" + }, + { + "name": "baseCacheUpdated", + "docs": ["The virtual price of staking / interest bearing token"], + "type": "u64" + }, + { + "name": "depegType", + "docs": ["Type of the depeg pool"], + "type": { "defined": "DepegType" } + } + ] + } + }, + { + "name": "Padding", + "docs": ["Padding for future pool fields"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "padding0", + "docs": ["Padding 0"], + "type": { "array": ["u8", 7] } + }, + { + "name": "padding", + "docs": ["Padding 1"], + "type": { "array": ["u128", 29] } + } + ] + } + }, + { + "name": "RoundDirection", + "docs": ["Rounding direction"], + "type": { + "kind": "enum", + "variants": [{ "name": "Floor" }, { "name": "Ceiling" }] + } + }, + { + "name": "TradeDirection", + "docs": ["Trade (swap) direction"], + "type": { + "kind": "enum", + "variants": [{ "name": "AtoB" }, { "name": "BtoA" }] + } + }, + { + "name": "NewCurveType", + "docs": ["Type of the swap curve"], + "type": { + "kind": "enum", + "variants": [ + { "name": "ConstantProduct" }, + { + "name": "Stable", + "fields": [ + { + "name": "amp", + "docs": ["Amplification coefficient"], + "type": "u64" + }, + { + "name": "token_multiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { "defined": "TokenMultiplier" } + }, + { + "name": "depeg", + "docs": [ + "Depeg pool information. Contains functions to allow token amount to be repeg using stake / interest bearing token virtual price" + ], + "type": { "defined": "Depeg" } + }, + { + "name": "last_amp_updated_timestamp", + "docs": [ + "The last amp updated timestamp. Used to prevent update_curve_info called infinitely many times within a short period" + ], + "type": "u64" + } + ] + }, + { + "name": "NewCurve", + "fields": [ + { "name": "field_one", "type": "u64" }, + { "name": "field_two", "type": "u64" } + ] + } + ] + } + }, + { + "name": "CurveType", + "docs": ["Type of the swap curve"], + "type": { + "kind": "enum", + "variants": [ + { "name": "ConstantProduct" }, + { + "name": "Stable", + "fields": [ + { + "name": "amp", + "docs": ["Amplification coefficient"], + "type": "u64" + }, + { + "name": "token_multiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { "defined": "TokenMultiplier" } + }, + { + "name": "depeg", + "docs": [ + "Depeg pool information. Contains functions to allow token amount to be repeg using stake / interest bearing token virtual price" + ], + "type": { "defined": "Depeg" } + }, + { + "name": "last_amp_updated_timestamp", + "docs": [ + "The last amp updated timestamp. Used to prevent update_curve_info called infinitely many times within a short period" + ], + "type": "u64" + } + ] + } + ] + } + }, + { + "name": "DepegType", + "docs": ["Type of depeg pool"], + "type": { + "kind": "enum", + "variants": [ + { "name": "None" }, + { "name": "Marinade" }, + { "name": "Lido" }, + { "name": "SplStake" } + ] + } + }, + { + "name": "Rounding", + "docs": ["Round up, down"], + "type": { + "kind": "enum", + "variants": [{ "name": "Up" }, { "name": "Down" }] + } + }, + { + "name": "PoolType", + "docs": ["Pool type"], + "type": { + "kind": "enum", + "variants": [{ "name": "Permissioned" }, { "name": "Permissionless" }] + } + } + ], + "events": [ + { + "name": "AddLiquidity", + "fields": [ + { "name": "lpMintAmount", "type": "u64", "index": false }, + { "name": "tokenAAmount", "type": "u64", "index": false }, + { "name": "tokenBAmount", "type": "u64", "index": false } + ] + }, + { + "name": "RemoveLiquidity", + "fields": [ + { "name": "lpUnmintAmount", "type": "u64", "index": false }, + { "name": "tokenAOutAmount", "type": "u64", "index": false }, + { "name": "tokenBOutAmount", "type": "u64", "index": false } + ] + }, + { + "name": "BootstrapLiquidity", + "fields": [ + { "name": "lpMintAmount", "type": "u64", "index": false }, + { "name": "tokenAAmount", "type": "u64", "index": false }, + { "name": "tokenBAmount", "type": "u64", "index": false }, + { "name": "pool", "type": "publicKey", "index": false } + ] + }, + { + "name": "Swap", + "fields": [ + { "name": "inAmount", "type": "u64", "index": false }, + { "name": "outAmount", "type": "u64", "index": false }, + { "name": "tradeFee", "type": "u64", "index": false }, + { "name": "adminFee", "type": "u64", "index": false }, + { "name": "hostFee", "type": "u64", "index": false } + ] + }, + { + "name": "SetPoolFees", + "fields": [ + { "name": "tradeFeeNumerator", "type": "u64", "index": false }, + { "name": "tradeFeeDenominator", "type": "u64", "index": false }, + { "name": "ownerTradeFeeNumerator", "type": "u64", "index": false }, + { "name": "ownerTradeFeeDenominator", "type": "u64", "index": false }, + { "name": "pool", "type": "publicKey", "index": false } + ] + }, + { + "name": "PoolInfo", + "fields": [ + { "name": "tokenAAmount", "type": "u64", "index": false }, + { "name": "tokenBAmount", "type": "u64", "index": false }, + { "name": "virtualPrice", "type": "f64", "index": false }, + { "name": "currentTimestamp", "type": "u64", "index": false } + ] + }, + { + "name": "TransferAdmin", + "fields": [ + { "name": "admin", "type": "publicKey", "index": false }, + { "name": "newAdmin", "type": "publicKey", "index": false }, + { "name": "pool", "type": "publicKey", "index": false } + ] + }, + { + "name": "SetAdminFeeAccount", + "fields": [ + { "name": "adminTokenAFee", "type": "publicKey", "index": false }, + { "name": "adminTokenBFee", "type": "publicKey", "index": false }, + { "name": "newAdminTokenAFee", "type": "publicKey", "index": false }, + { "name": "newAdminTokenBFee", "type": "publicKey", "index": false } + ] + }, + { + "name": "OverrideCurveParam", + "fields": [ + { "name": "newAmp", "type": "u64", "index": false }, + { "name": "updatedTimestamp", "type": "u64", "index": false }, + { "name": "pool", "type": "publicKey", "index": false } + ] + }, + { + "name": "PoolCreated", + "fields": [ + { "name": "lpMint", "type": "publicKey", "index": false }, + { "name": "tokenAMint", "type": "publicKey", "index": false }, + { "name": "tokenBMint", "type": "publicKey", "index": false }, + { + "name": "poolType", + "type": { "defined": "PoolType" }, + "index": false + }, + { "name": "pool", "type": "publicKey", "index": false } + ] + }, + { + "name": "PoolEnabled", + "fields": [ + { "name": "pool", "type": "publicKey", "index": false }, + { "name": "enabled", "type": "bool", "index": false } + ] + }, + { + "name": "MigrateFeeAccount", + "fields": [ + { "name": "pool", "type": "publicKey", "index": false }, + { "name": "newAdminTokenAFee", "type": "publicKey", "index": false }, + { "name": "newAdminTokenBFee", "type": "publicKey", "index": false }, + { "name": "tokenAAmount", "type": "u64", "index": false }, + { "name": "tokenBAmount", "type": "u64", "index": false } + ] + }, + { + "name": "CreateLockEscrow", + "fields": [ + { "name": "pool", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false } + ] + }, + { + "name": "Lock", + "fields": [ + { "name": "pool", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false }, + { "name": "amount", "type": "u64", "index": false } + ] + }, + { + "name": "ClaimFee", + "fields": [ + { "name": "pool", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false }, + { "name": "amount", "type": "u64", "index": false }, + { "name": "aFee", "type": "u64", "index": false }, + { "name": "bFee", "type": "u64", "index": false } + ] + } + ], + "errors": [ + { "code": 6000, "name": "MathOverflow", "msg": "Math operation overflow" }, + { "code": 6001, "name": "InvalidFee", "msg": "Invalid fee setup" }, + { "code": 6002, "name": "InvalidInvariant", "msg": "Invalid invariant d" }, + { + "code": 6003, + "name": "FeeCalculationFailure", + "msg": "Fee calculation failure" + }, + { + "code": 6004, + "name": "ExceededSlippage", + "msg": "Exceeded slippage tolerance" + }, + { + "code": 6005, + "name": "InvalidCalculation", + "msg": "Invalid curve calculation" + }, + { + "code": 6006, + "name": "ZeroTradingTokens", + "msg": "Given pool token amount results in zero trading tokens" + }, + { + "code": 6007, + "name": "ConversionError", + "msg": "Math conversion overflow" + }, + { + "code": 6008, + "name": "FaultyLpMint", + "msg": "LP mint authority must be 'A' vault lp, without freeze authority, and 0 supply" + }, + { + "code": 6009, + "name": "MismatchedTokenMint", + "msg": "Token mint mismatched" + }, + { "code": 6010, "name": "MismatchedLpMint", "msg": "LP mint mismatched" }, + { + "code": 6011, + "name": "MismatchedOwner", + "msg": "Invalid lp token owner" + }, + { + "code": 6012, + "name": "InvalidVaultAccount", + "msg": "Invalid vault account" + }, + { + "code": 6013, + "name": "InvalidVaultLpAccount", + "msg": "Invalid vault lp account" + }, + { + "code": 6014, + "name": "InvalidPoolLpMintAccount", + "msg": "Invalid pool lp mint account" + }, + { "code": 6015, "name": "PoolDisabled", "msg": "Pool disabled" }, + { + "code": 6016, + "name": "InvalidAdminAccount", + "msg": "Invalid admin account" + }, + { + "code": 6017, + "name": "InvalidAdminFeeAccount", + "msg": "Invalid admin fee account" + }, + { "code": 6018, "name": "SameAdminAccount", "msg": "Same admin account" }, + { + "code": 6019, + "name": "IdenticalSourceDestination", + "msg": "Identical user source and destination token account" + }, + { + "code": 6020, + "name": "ApyCalculationError", + "msg": "Apy calculation error" + }, + { + "code": 6021, + "name": "InsufficientSnapshot", + "msg": "Insufficient virtual price snapshot" + }, + { + "code": 6022, + "name": "NonUpdatableCurve", + "msg": "Current curve is non-updatable" + }, + { + "code": 6023, + "name": "MisMatchedCurve", + "msg": "New curve is mismatched with old curve" + }, + { + "code": 6024, + "name": "InvalidAmplification", + "msg": "Amplification is invalid" + }, + { + "code": 6025, + "name": "UnsupportedOperation", + "msg": "Operation is not supported" + }, + { + "code": 6026, + "name": "ExceedMaxAChanges", + "msg": "Exceed max amplification changes" + }, + { + "code": 6027, + "name": "InvalidRemainingAccountsLen", + "msg": "Invalid remaining accounts length" + }, + { + "code": 6028, + "name": "InvalidRemainingAccounts", + "msg": "Invalid remaining account" + }, + { + "code": 6029, + "name": "MismatchedDepegMint", + "msg": "Token mint B doesn't matches depeg type token mint" + }, + { "code": 6030, "name": "InvalidApyAccount", "msg": "Invalid APY account" }, + { + "code": 6031, + "name": "InvalidTokenMultiplier", + "msg": "Invalid token multiplier" + }, + { + "code": 6032, + "name": "InvalidDepegInformation", + "msg": "Invalid depeg information" + }, + { + "code": 6033, + "name": "UpdateTimeConstraint", + "msg": "Update time constraint violated" + }, + { "code": 6034, "name": "ExceedMaxFeeBps", "msg": "Exceeded max fee bps" }, + { + "code": 6035, + "name": "OwnerFeeOverHalfOfTradeFee", + "msg": "Owner fee exceed half of trade fee" + }, + { "code": 6036, "name": "InvalidAdmin", "msg": "Invalid admin" }, + { + "code": 6037, + "name": "PoolIsNotPermissioned", + "msg": "Pool is not permissioned" + }, + { + "code": 6038, + "name": "InvalidDepositAmount", + "msg": "Invalid deposit amount" + }, + { "code": 6039, "name": "InvalidFeeOwner", "msg": "Invalid fee owner" }, + { "code": 6040, "name": "NonDepletedPool", "msg": "Pool is not depleted" }, + { "code": 6041, "name": "AmountNotPeg", "msg": "Token amount is not 1:1" }, + { "code": 6042, "name": "AmountIsZero", "msg": "Amount is zero" }, + { "code": 6043, "name": "TypeCastFailed", "msg": "Type cast error" }, + { "code": 6044, "name": "AmountIsNotEnough", "msg": "Amount is not enough" } + ] +} diff --git a/idl/meteora_amm_052.json b/idl/meteora_amm_052.json new file mode 100644 index 0000000..19ad9d1 --- /dev/null +++ b/idl/meteora_amm_052.json @@ -0,0 +1,4464 @@ +{ + "version": "0.5.2", + "name": "amm", + "docs": [ + "Program for AMM" + ], + "instructions": [ + { + "name": "initializePermissionedPool", + "docs": [ + "Initialize a new permissioned pool." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": true, + "docs": [ + "Pool account (arbitrary address)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "adminTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "adminTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "adminPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin pool LP token account. Used to receive LP during first deposit (initialize pool)", + "Admin pool LP token account. Used to receive LP during first deposit (initialize pool)" + ] + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "admin", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "feeOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "curveType", + "type": { + "defined": "CurveType" + } + } + ] + }, + { + "name": "initializePermissionlessPool", + "docs": [ + "Initialize a new permissionless pool." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA address)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerPoolLp", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "feeOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "curveType", + "type": { + "defined": "CurveType" + } + }, + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "initializePermissionlessPoolWithFeeTier", + "docs": [ + "Initialize a new permissionless pool with customized fee tier" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA address)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerPoolLp", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "feeOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "curveType", + "type": { + "defined": "CurveType" + } + }, + { + "name": "tradeFeeBps", + "type": "u64" + }, + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "enableOrDisablePool", + "docs": [ + "Enable or disable a pool. A disabled pool allow only remove balanced liquidity operation." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": [ + "Admin account. Must be owner of the pool." + ] + } + ], + "args": [ + { + "name": "enable", + "type": "bool" + } + ] + }, + { + "name": "swap", + "docs": [ + "Swap token A to B, or vice versa. An amount of trading fee will be charged for liquidity provider, and the admin of the pool." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "userSourceToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account. Token from this account will be transfer into the vault by the pool in exchange for another token of the pool." + ] + }, + { + "name": "userDestinationToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account. The exchanged token will be transfer into this account from the pool." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "Lp token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "Lp token mint of vault b" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "protocolTokenFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account. Used to receive trading fee. It's mint field must matched with user_source_token mint field." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_source_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "inAmount", + "type": "u64" + }, + { + "name": "minimumOutAmount", + "type": "u64" + } + ] + }, + { + "name": "removeLiquiditySingleSide", + "docs": [ + "Withdraw only single token from the pool. Only supported by pool with stable swap curve." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "User pool lp token account. LP will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "userDestinationToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token account to receive token upon success liquidity removal." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of the user_pool_lp account." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "poolTokenAmount", + "type": "u64" + }, + { + "name": "minimumOutAmount", + "type": "u64" + } + ] + }, + { + "name": "addImbalanceLiquidity", + "docs": [ + "Deposit tokens to the pool in an imbalance ratio. Only supported by pool with stable swap curve." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "minimumPoolTokenAmount", + "type": "u64" + }, + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "removeBalanceLiquidity", + "docs": [ + "Withdraw tokens from the pool in a balanced ratio. User will still able to withdraw from pool even the pool is disabled. This allow user to exit their liquidity when there's some unforeseen event happen." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "poolTokenAmount", + "type": "u64" + }, + { + "name": "minimumATokenOut", + "type": "u64" + }, + { + "name": "minimumBTokenOut", + "type": "u64" + } + ] + }, + { + "name": "addBalanceLiquidity", + "docs": [ + "Deposit tokens to the pool in a balanced ratio." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "poolTokenAmount", + "type": "u64" + }, + { + "name": "maximumTokenAAmount", + "type": "u64" + }, + { + "name": "maximumTokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "setPoolFees", + "docs": [ + "Update trading fee charged for liquidity provider, and admin." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "feeOperator", + "isMut": false, + "isSigner": true, + "docs": [ + "Fee operator account" + ] + } + ], + "args": [ + { + "name": "fees", + "type": { + "defined": "PoolFees" + } + }, + { + "name": "newPartnerFeeNumerator", + "type": "u64" + } + ] + }, + { + "name": "overrideCurveParam", + "docs": [ + "Update swap curve parameters. This function do not allow update of curve type. For example: stable swap curve to constant product curve. Only supported by pool with stable swap curve.", + "Only amp is allowed to be override. The other attributes of stable swap curve will be ignored." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": [ + "Admin account." + ] + } + ], + "args": [ + { + "name": "curveType", + "type": { + "defined": "CurveType" + } + } + ] + }, + { + "name": "getPoolInfo", + "docs": [ + "Get the general information of the pool." + ], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + } + ], + "args": [] + }, + { + "name": "bootstrapLiquidity", + "docs": [ + "Bootstrap the pool when liquidity is depleted." + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "userPoolLp", + "isMut": true, + "isSigner": false, + "docs": [ + "user pool lp token account. lp will be burned from this account upon success liquidity removal." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "user", + "isMut": false, + "isSigner": true, + "docs": [ + "User account. Must be owner of user_a_token, and user_b_token." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + } + ], + "args": [ + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "createMintMetadata", + "docs": [ + "Create mint metadata account for old pools" + ], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": [ + "Pool account" + ] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP mint account of the pool" + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault A LP account of the pool" + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Payer" + ] + } + ], + "args": [] + }, + { + "name": "createLockEscrow", + "docs": [ + "Create lock account" + ], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": [ + "Pool account" + ] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": [ + "Lock account" + ] + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Payer account" + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [] + }, + { + "name": "lock", + "docs": [ + "Lock Lp token" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account" + ] + }, + { + "name": "lpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": [ + "Lock account" + ] + }, + { + "name": "owner", + "isMut": true, + "isSigner": true, + "docs": [ + "Can be anyone" + ] + }, + { + "name": "sourceTokens", + "isMut": true, + "isSigner": false, + "docs": [ + "owner lp token account" + ] + }, + { + "name": "escrowVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Escrow vault" + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "aVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": false, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + } + ], + "args": [ + { + "name": "maxAmount", + "type": "u64" + } + ] + }, + { + "name": "claimFee", + "docs": [ + "Claim fee" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "lockEscrow", + "isMut": true, + "isSigner": false, + "docs": [ + "Lock account" + ] + }, + { + "name": "owner", + "isMut": true, + "isSigner": true, + "docs": [ + "Owner of lock account" + ] + }, + { + "name": "sourceTokens", + "isMut": true, + "isSigner": false, + "docs": [ + "owner lp token account" + ] + }, + { + "name": "escrowVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Escrow vault" + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token a. token a of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token b. token b of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault a" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault b" + ] + }, + { + "name": "userAToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token A account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "userBToken", + "isMut": true, + "isSigner": false, + "docs": [ + "User token B account. Token will be transfer from this account if it is add liquidity operation. Else, token will be transfer into this account." + ] + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. the pool will deposit/withdraw liquidity from the vault." + ] + } + ], + "args": [ + { + "name": "maxAmount", + "type": "u64" + } + ] + }, + { + "name": "createConfig", + "docs": [ + "Create config" + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "configParameters", + "type": { + "defined": "ConfigParameters" + } + } + ] + }, + { + "name": "closeConfig", + "docs": [ + "Close config" + ], + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializePermissionlessConstantProductPoolWithConfig", + "docs": [ + "Initialize permissionless pool with config" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA address)" + ] + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerPoolLp", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + } + ] + }, + { + "name": "initializePermissionlessConstantProductPoolWithConfig2", + "docs": [ + "Initialize permissionless pool with config 2" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA address)" + ] + }, + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerPoolLp", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + }, + { + "name": "activationPoint", + "type": { + "option": "u64" + } + } + ] + }, + { + "name": "initializeCustomizablePermissionlessConstantProductPool", + "docs": [ + "Initialize permissionless pool with customizable params" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA address)" + ] + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of the pool" + ] + }, + { + "name": "tokenAMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token A mint of the pool. Eg: USDT" + ] + }, + { + "name": "tokenBMint", + "isMut": false, + "isSigner": false, + "docs": [ + "Token B mint of the pool. Eg: USDC" + ] + }, + { + "name": "aVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "bVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ] + }, + { + "name": "aTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault A" + ] + }, + { + "name": "bTokenVault", + "isMut": true, + "isSigner": false, + "docs": [ + "Token vault account of vault B" + ] + }, + { + "name": "aVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault A" + ] + }, + { + "name": "bVaultLpMint", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token mint of vault B" + ] + }, + { + "name": "aVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "bVaultLp", + "isMut": true, + "isSigner": false, + "docs": [ + "LP token account of vault B. Used to receive/burn vault LP upon deposit/withdraw from the vault." + ] + }, + { + "name": "payerTokenA", + "isMut": true, + "isSigner": false, + "docs": [ + "Payer token account for pool token A mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerTokenB", + "isMut": true, + "isSigner": false, + "docs": [ + "Admin token account for pool token B mint. Used to bootstrap the pool with initial liquidity." + ] + }, + { + "name": "payerPoolLp", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ] + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false, + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ] + }, + { + "name": "payer", + "isMut": true, + "isSigner": true, + "docs": [ + "Admin account. This account will be the admin of the pool, and the payer for PDA during initialize pool." + ] + }, + { + "name": "rent", + "isMut": false, + "isSigner": false, + "docs": [ + "Rent account." + ] + }, + { + "name": "mintMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vaultProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Vault program. The pool will deposit/withdraw liquidity from the vault." + ] + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Token program." + ] + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "Associated token program." + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false, + "docs": [ + "System program." + ] + } + ], + "args": [ + { + "name": "tokenAAmount", + "type": "u64" + }, + { + "name": "tokenBAmount", + "type": "u64" + }, + { + "name": "params", + "type": { + "defined": "CustomizableParams" + } + } + ] + }, + { + "name": "updateActivationPoint", + "docs": [ + "Update activation slot" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "admin", + "isMut": false, + "isSigner": true, + "docs": [ + "Admin account." + ] + } + ], + "args": [ + { + "name": "newActivationPoint", + "type": "u64" + } + ] + }, + { + "name": "withdrawProtocolFees", + "docs": [ + "Withdraw protocol fee" + ], + "accounts": [ + { + "name": "pool", + "isMut": false, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false + }, + { + "name": "treasuryTokenA", + "isMut": true, + "isSigner": false + }, + { + "name": "treasuryTokenB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setWhitelistedVault", + "docs": [ + "Set whitelisted vault" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "whitelistedVault", + "type": "publicKey" + } + ] + }, + { + "name": "partnerClaimFee", + "docs": [ + "Partner claim fee" + ], + "accounts": [ + { + "name": "pool", + "isMut": true, + "isSigner": false, + "docs": [ + "Pool account (PDA)" + ] + }, + { + "name": "aVaultLp", + "isMut": false, + "isSigner": false + }, + { + "name": "protocolTokenAFee", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolTokenBFee", + "isMut": true, + "isSigner": false + }, + { + "name": "partnerTokenA", + "isMut": true, + "isSigner": false + }, + { + "name": "partnerTokenB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "partnerAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "maxAmountA", + "type": "u64" + }, + { + "name": "maxAmountB", + "type": "u64" + } + ] + } + ], + "accounts": [ + { + "name": "Config", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolFees", + "type": { + "defined": "PoolFees" + } + }, + { + "name": "activationDuration", + "type": "u64" + }, + { + "name": "vaultConfigKey", + "type": "publicKey" + }, + { + "name": "poolCreatorAuthority", + "docs": [ + "Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config." + ], + "type": "publicKey" + }, + { + "name": "activationType", + "docs": [ + "Activation type" + ], + "type": "u8" + }, + { + "name": "partnerFeeNumerator", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 219 + ] + } + } + ] + } + }, + { + "name": "LockEscrow", + "docs": [ + "State of lock escrow account" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "docs": [ + "Pool address" + ], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "Owner address" + ], + "type": "publicKey" + }, + { + "name": "escrowVault", + "docs": [ + "Vault address, store the lock user lock" + ], + "type": "publicKey" + }, + { + "name": "bump", + "docs": [ + "bump, used to sign" + ], + "type": "u8" + }, + { + "name": "totalLockedAmount", + "docs": [ + "Total locked amount" + ], + "type": "u64" + }, + { + "name": "lpPerToken", + "docs": [ + "Lp per token, virtual price of lp token" + ], + "type": "u128" + }, + { + "name": "unclaimedFeePending", + "docs": [ + "Unclaimed fee pending" + ], + "type": "u64" + }, + { + "name": "aFee", + "docs": [ + "Total a fee claimed so far" + ], + "type": "u64" + }, + { + "name": "bFee", + "docs": [ + "Total b fee claimed so far" + ], + "type": "u64" + } + ] + } + }, + { + "name": "Pool", + "docs": [ + "State of pool account" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "lpMint", + "docs": [ + "LP token mint of the pool" + ], + "type": "publicKey" + }, + { + "name": "tokenAMint", + "docs": [ + "Token A mint of the pool. Eg: USDT" + ], + "type": "publicKey" + }, + { + "name": "tokenBMint", + "docs": [ + "Token B mint of the pool. Eg: USDC" + ], + "type": "publicKey" + }, + { + "name": "aVault", + "docs": [ + "Vault account for token A. Token A of the pool will be deposit / withdraw from this vault account." + ], + "type": "publicKey" + }, + { + "name": "bVault", + "docs": [ + "Vault account for token B. Token B of the pool will be deposit / withdraw from this vault account." + ], + "type": "publicKey" + }, + { + "name": "aVaultLp", + "docs": [ + "LP token account of vault A. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ], + "type": "publicKey" + }, + { + "name": "bVaultLp", + "docs": [ + "LP token account of vault B. Used to receive/burn the vault LP upon deposit/withdraw from the vault." + ], + "type": "publicKey" + }, + { + "name": "aVaultLpBump", + "docs": [ + "\"A\" vault lp bump. Used to create signer seeds." + ], + "type": "u8" + }, + { + "name": "enabled", + "docs": [ + "Flag to determine whether the pool is enabled, or disabled." + ], + "type": "bool" + }, + { + "name": "protocolTokenAFee", + "docs": [ + "Protocol fee token account for token A. Used to receive trading fee." + ], + "type": "publicKey" + }, + { + "name": "protocolTokenBFee", + "docs": [ + "Protocol fee token account for token B. Used to receive trading fee." + ], + "type": "publicKey" + }, + { + "name": "feeLastUpdatedAt", + "docs": [ + "Fee last updated timestamp" + ], + "type": "u64" + }, + { + "name": "padding0", + "type": { + "array": [ + "u8", + 24 + ] + } + }, + { + "name": "fees", + "docs": [ + "Store the fee charges setting." + ], + "type": { + "defined": "PoolFees" + } + }, + { + "name": "poolType", + "docs": [ + "Pool type" + ], + "type": { + "defined": "PoolType" + } + }, + { + "name": "stake", + "docs": [ + "Stake pubkey of SPL stake pool" + ], + "type": "publicKey" + }, + { + "name": "totalLockedLp", + "docs": [ + "Total locked lp token" + ], + "type": "u64" + }, + { + "name": "bootstrapping", + "docs": [ + "bootstrapping config" + ], + "type": { + "defined": "Bootstrapping" + } + }, + { + "name": "partnerInfo", + "type": { + "defined": "PartnerInfo" + } + }, + { + "name": "padding", + "docs": [ + "Padding for future pool field" + ], + "type": { + "defined": "Padding" + } + }, + { + "name": "curveType", + "docs": [ + "The type of the swap curve supported by the pool." + ], + "type": { + "defined": "CurveType" + } + } + ] + } + } + ], + "types": [ + { + "name": "TokenMultiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenAMultiplier", + "docs": [ + "Multiplier for token A of the pool." + ], + "type": "u64" + }, + { + "name": "tokenBMultiplier", + "docs": [ + "Multiplier for token B of the pool." + ], + "type": "u64" + }, + { + "name": "precisionFactor", + "docs": [ + "Record the highest token decimal in the pool. For example, Token A is 6 decimal, token B is 9 decimal. This will save value of 9." + ], + "type": "u8" + } + ] + } + }, + { + "name": "PoolFees", + "docs": [ + "Information regarding fee charges" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tradeFeeNumerator", + "docs": [ + "Trade fees are extra token amounts that are held inside the token", + "accounts during a trade, making the value of liquidity tokens rise.", + "Trade fee numerator" + ], + "type": "u64" + }, + { + "name": "tradeFeeDenominator", + "docs": [ + "Trade fee denominator" + ], + "type": "u64" + }, + { + "name": "protocolTradeFeeNumerator", + "docs": [ + "Protocol trading fees are extra token amounts that are held inside the token", + "accounts during a trade, with the equivalent in pool tokens minted to", + "the protocol of the program.", + "Protocol trade fee numerator" + ], + "type": "u64" + }, + { + "name": "protocolTradeFeeDenominator", + "docs": [ + "Protocol trade fee denominator" + ], + "type": "u64" + } + ] + } + }, + { + "name": "Depeg", + "docs": [ + "Contains information for depeg pool" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseVirtualPrice", + "docs": [ + "The virtual price of staking / interest bearing token" + ], + "type": "u64" + }, + { + "name": "baseCacheUpdated", + "docs": [ + "The last time base_virtual_price is updated" + ], + "type": "u64" + }, + { + "name": "depegType", + "docs": [ + "Type of the depeg pool" + ], + "type": { + "defined": "DepegType" + } + } + ] + } + }, + { + "name": "ConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tradeFeeNumerator", + "type": "u64" + }, + { + "name": "protocolTradeFeeNumerator", + "type": "u64" + }, + { + "name": "activationDuration", + "type": "u64" + }, + { + "name": "vaultConfigKey", + "type": "publicKey" + }, + { + "name": "poolCreatorAuthority", + "type": "publicKey" + }, + { + "name": "activationType", + "type": "u8" + }, + { + "name": "index", + "type": "u64" + }, + { + "name": "partnerFeeNumerator", + "type": "u64" + } + ] + } + }, + { + "name": "CustomizableParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tradeFeeNumerator", + "docs": [ + "Trading fee." + ], + "type": "u32" + }, + { + "name": "activationPoint", + "docs": [ + "The pool start trading." + ], + "type": { + "option": "u64" + } + }, + { + "name": "hasAlphaVault", + "docs": [ + "Whether the pool support alpha vault" + ], + "type": "bool" + }, + { + "name": "activationType", + "docs": [ + "Activation type" + ], + "type": "u8" + }, + { + "name": "padding", + "docs": [ + "Padding" + ], + "type": { + "array": [ + "u8", + 90 + ] + } + } + ] + } + }, + { + "name": "Padding", + "docs": [ + "Padding for future pool fields" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "padding0", + "docs": [ + "Padding 0" + ], + "type": { + "array": [ + "u8", + 6 + ] + } + }, + { + "name": "padding1", + "docs": [ + "Padding 1" + ], + "type": { + "array": [ + "u64", + 21 + ] + } + }, + { + "name": "padding2", + "docs": [ + "Padding 2" + ], + "type": { + "array": [ + "u64", + 21 + ] + } + } + ] + } + }, + { + "name": "PartnerInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "feeNumerator", + "type": "u64" + }, + { + "name": "partnerAuthority", + "type": "publicKey" + }, + { + "name": "pendingFeeA", + "type": "u64" + }, + { + "name": "pendingFeeB", + "type": "u64" + } + ] + } + }, + { + "name": "Bootstrapping", + "type": { + "kind": "struct", + "fields": [ + { + "name": "activationPoint", + "docs": [ + "Activation point, can be slot or timestamp" + ], + "type": "u64" + }, + { + "name": "whitelistedVault", + "docs": [ + "Whitelisted vault to be able to buy pool before activation_point" + ], + "type": "publicKey" + }, + { + "name": "poolCreator", + "docs": [ + "Need to store pool creator in lauch pool, so they can modify liquidity before activation_point" + ], + "type": "publicKey" + }, + { + "name": "activationType", + "docs": [ + "Activation type, 0 means by slot, 1 means by timestamp" + ], + "type": "u8" + } + ] + } + }, + { + "name": "ActivationType", + "docs": [ + "Type of the activation" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Slot" + }, + { + "name": "Timestamp" + } + ] + } + }, + { + "name": "RoundDirection", + "docs": [ + "Rounding direction" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Floor" + }, + { + "name": "Ceiling" + } + ] + } + }, + { + "name": "TradeDirection", + "docs": [ + "Trade (swap) direction" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "AtoB" + }, + { + "name": "BtoA" + } + ] + } + }, + { + "name": "NewCurveType", + "docs": [ + "Type of the swap curve" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "ConstantProduct" + }, + { + "name": "Stable", + "fields": [ + { + "name": "amp", + "docs": [ + "Amplification coefficient" + ], + "type": "u64" + }, + { + "name": "token_multiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { + "defined": "TokenMultiplier" + } + }, + { + "name": "depeg", + "docs": [ + "Depeg pool information. Contains functions to allow token amount to be repeg using stake / interest bearing token virtual price" + ], + "type": { + "defined": "Depeg" + } + }, + { + "name": "last_amp_updated_timestamp", + "docs": [ + "The last amp updated timestamp. Used to prevent update_curve_info called infinitely many times within a short period" + ], + "type": "u64" + } + ] + }, + { + "name": "NewCurve", + "fields": [ + { + "name": "field_one", + "type": "u64" + }, + { + "name": "field_two", + "type": "u64" + } + ] + } + ] + } + }, + { + "name": "CurveType", + "docs": [ + "Type of the swap curve" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "ConstantProduct" + }, + { + "name": "Stable", + "fields": [ + { + "name": "amp", + "docs": [ + "Amplification coefficient" + ], + "type": "u64" + }, + { + "name": "token_multiplier", + "docs": [ + "Multiplier for the pool token. Used to normalized token with different decimal into the same precision." + ], + "type": { + "defined": "TokenMultiplier" + } + }, + { + "name": "depeg", + "docs": [ + "Depeg pool information. Contains functions to allow token amount to be repeg using stake / interest bearing token virtual price" + ], + "type": { + "defined": "Depeg" + } + }, + { + "name": "last_amp_updated_timestamp", + "docs": [ + "The last amp updated timestamp. Used to prevent update_curve_info called infinitely many times within a short period" + ], + "type": "u64" + } + ] + } + ] + } + }, + { + "name": "DepegType", + "docs": [ + "Type of depeg pool" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "None" + }, + { + "name": "Marinade" + }, + { + "name": "Lido" + }, + { + "name": "SplStake" + } + ] + } + }, + { + "name": "Rounding", + "docs": [ + "Round up, down" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Up" + }, + { + "name": "Down" + } + ] + } + }, + { + "name": "PoolType", + "docs": [ + "Pool type" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Permissioned" + }, + { + "name": "Permissionless" + } + ] + } + } + ], + "events": [ + { + "name": "AddLiquidity", + "fields": [ + { + "name": "lpMintAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "RemoveLiquidity", + "fields": [ + { + "name": "lpUnmintAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenAOutAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBOutAmount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "BootstrapLiquidity", + "fields": [ + { + "name": "lpMintAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + }, + { + "name": "pool", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "Swap", + "fields": [ + { + "name": "inAmount", + "type": "u64", + "index": false + }, + { + "name": "outAmount", + "type": "u64", + "index": false + }, + { + "name": "tradeFee", + "type": "u64", + "index": false + }, + { + "name": "protocolFee", + "type": "u64", + "index": false + }, + { + "name": "hostFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "SetPoolFees", + "fields": [ + { + "name": "tradeFeeNumerator", + "type": "u64", + "index": false + }, + { + "name": "tradeFeeDenominator", + "type": "u64", + "index": false + }, + { + "name": "protocolTradeFeeNumerator", + "type": "u64", + "index": false + }, + { + "name": "protocolTradeFeeDenominator", + "type": "u64", + "index": false + }, + { + "name": "pool", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PoolInfo", + "fields": [ + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + }, + { + "name": "virtualPrice", + "type": "f64", + "index": false + }, + { + "name": "currentTimestamp", + "type": "u64", + "index": false + } + ] + }, + { + "name": "TransferAdmin", + "fields": [ + { + "name": "admin", + "type": "publicKey", + "index": false + }, + { + "name": "newAdmin", + "type": "publicKey", + "index": false + }, + { + "name": "pool", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "OverrideCurveParam", + "fields": [ + { + "name": "newAmp", + "type": "u64", + "index": false + }, + { + "name": "updatedTimestamp", + "type": "u64", + "index": false + }, + { + "name": "pool", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PoolCreated", + "fields": [ + { + "name": "lpMint", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAMint", + "type": "publicKey", + "index": false + }, + { + "name": "tokenBMint", + "type": "publicKey", + "index": false + }, + { + "name": "poolType", + "type": { + "defined": "PoolType" + }, + "index": false + }, + { + "name": "pool", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PoolEnabled", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "enabled", + "type": "bool", + "index": false + } + ] + }, + { + "name": "MigrateFeeAccount", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "newAdminTokenAFee", + "type": "publicKey", + "index": false + }, + { + "name": "newAdminTokenBFee", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "CreateLockEscrow", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "Lock", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "ClaimFee", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + }, + { + "name": "aFee", + "type": "u64", + "index": false + }, + { + "name": "bFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "CreateConfig", + "fields": [ + { + "name": "tradeFeeNumerator", + "type": "u64", + "index": false + }, + { + "name": "protocolTradeFeeNumerator", + "type": "u64", + "index": false + }, + { + "name": "config", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CloseConfig", + "fields": [ + { + "name": "config", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "WithdrawProtocolFees", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "protocolAFee", + "type": "u64", + "index": false + }, + { + "name": "protocolBFee", + "type": "u64", + "index": false + }, + { + "name": "protocolAFeeOwner", + "type": "publicKey", + "index": false + }, + { + "name": "protocolBFeeOwner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PartnerClaimFees", + "fields": [ + { + "name": "pool", + "type": "publicKey", + "index": false + }, + { + "name": "feeA", + "type": "u64", + "index": false + }, + { + "name": "feeB", + "type": "u64", + "index": false + }, + { + "name": "partner", + "type": "publicKey", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "MathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6001, + "name": "InvalidFee", + "msg": "Invalid fee setup" + }, + { + "code": 6002, + "name": "InvalidInvariant", + "msg": "Invalid invariant d" + }, + { + "code": 6003, + "name": "FeeCalculationFailure", + "msg": "Fee calculation failure" + }, + { + "code": 6004, + "name": "ExceededSlippage", + "msg": "Exceeded slippage tolerance" + }, + { + "code": 6005, + "name": "InvalidCalculation", + "msg": "Invalid curve calculation" + }, + { + "code": 6006, + "name": "ZeroTradingTokens", + "msg": "Given pool token amount results in zero trading tokens" + }, + { + "code": 6007, + "name": "ConversionError", + "msg": "Math conversion overflow" + }, + { + "code": 6008, + "name": "FaultyLpMint", + "msg": "LP mint authority must be 'A' vault lp, without freeze authority, and 0 supply" + }, + { + "code": 6009, + "name": "MismatchedTokenMint", + "msg": "Token mint mismatched" + }, + { + "code": 6010, + "name": "MismatchedLpMint", + "msg": "LP mint mismatched" + }, + { + "code": 6011, + "name": "MismatchedOwner", + "msg": "Invalid lp token owner" + }, + { + "code": 6012, + "name": "InvalidVaultAccount", + "msg": "Invalid vault account" + }, + { + "code": 6013, + "name": "InvalidVaultLpAccount", + "msg": "Invalid vault lp account" + }, + { + "code": 6014, + "name": "InvalidPoolLpMintAccount", + "msg": "Invalid pool lp mint account" + }, + { + "code": 6015, + "name": "PoolDisabled", + "msg": "Pool disabled" + }, + { + "code": 6016, + "name": "InvalidAdminAccount", + "msg": "Invalid admin account" + }, + { + "code": 6017, + "name": "InvalidProtocolFeeAccount", + "msg": "Invalid protocol fee account" + }, + { + "code": 6018, + "name": "SameAdminAccount", + "msg": "Same admin account" + }, + { + "code": 6019, + "name": "IdenticalSourceDestination", + "msg": "Identical user source and destination token account" + }, + { + "code": 6020, + "name": "ApyCalculationError", + "msg": "Apy calculation error" + }, + { + "code": 6021, + "name": "InsufficientSnapshot", + "msg": "Insufficient virtual price snapshot" + }, + { + "code": 6022, + "name": "NonUpdatableCurve", + "msg": "Current curve is non-updatable" + }, + { + "code": 6023, + "name": "MisMatchedCurve", + "msg": "New curve is mismatched with old curve" + }, + { + "code": 6024, + "name": "InvalidAmplification", + "msg": "Amplification is invalid" + }, + { + "code": 6025, + "name": "UnsupportedOperation", + "msg": "Operation is not supported" + }, + { + "code": 6026, + "name": "ExceedMaxAChanges", + "msg": "Exceed max amplification changes" + }, + { + "code": 6027, + "name": "InvalidRemainingAccountsLen", + "msg": "Invalid remaining accounts length" + }, + { + "code": 6028, + "name": "InvalidRemainingAccounts", + "msg": "Invalid remaining account" + }, + { + "code": 6029, + "name": "MismatchedDepegMint", + "msg": "Token mint B doesn't matches depeg type token mint" + }, + { + "code": 6030, + "name": "InvalidApyAccount", + "msg": "Invalid APY account" + }, + { + "code": 6031, + "name": "InvalidTokenMultiplier", + "msg": "Invalid token multiplier" + }, + { + "code": 6032, + "name": "InvalidDepegInformation", + "msg": "Invalid depeg information" + }, + { + "code": 6033, + "name": "UpdateTimeConstraint", + "msg": "Update time constraint violated" + }, + { + "code": 6034, + "name": "ExceedMaxFeeBps", + "msg": "Exceeded max fee bps" + }, + { + "code": 6035, + "name": "InvalidAdmin", + "msg": "Invalid admin" + }, + { + "code": 6036, + "name": "PoolIsNotPermissioned", + "msg": "Pool is not permissioned" + }, + { + "code": 6037, + "name": "InvalidDepositAmount", + "msg": "Invalid deposit amount" + }, + { + "code": 6038, + "name": "InvalidFeeOwner", + "msg": "Invalid fee owner" + }, + { + "code": 6039, + "name": "NonDepletedPool", + "msg": "Pool is not depleted" + }, + { + "code": 6040, + "name": "AmountNotPeg", + "msg": "Token amount is not 1:1" + }, + { + "code": 6041, + "name": "AmountIsZero", + "msg": "Amount is zero" + }, + { + "code": 6042, + "name": "TypeCastFailed", + "msg": "Type cast error" + }, + { + "code": 6043, + "name": "AmountIsNotEnough", + "msg": "Amount is not enough" + }, + { + "code": 6044, + "name": "InvalidActivationDuration", + "msg": "Invalid activation duration" + }, + { + "code": 6045, + "name": "PoolIsNotLaunchPool", + "msg": "Pool is not launch pool" + }, + { + "code": 6046, + "name": "UnableToModifyActivationPoint", + "msg": "Unable to modify activation point" + }, + { + "code": 6047, + "name": "InvalidAuthorityToCreateThePool", + "msg": "Invalid authority to create the pool" + }, + { + "code": 6048, + "name": "InvalidActivationType", + "msg": "Invalid activation type" + }, + { + "code": 6049, + "name": "InvalidActivationPoint", + "msg": "Invalid activation point" + }, + { + "code": 6050, + "name": "PreActivationSwapStarted", + "msg": "Pre activation swap window started" + }, + { + "code": 6051, + "name": "InvalidPoolType", + "msg": "Invalid pool type" + }, + { + "code": 6052, + "name": "InvalidQuoteMint", + "msg": "Quote token must be SOL,USDC" + } + ] +} \ No newline at end of file diff --git a/idl/meteora_cp_amm_011.json b/idl/meteora_cp_amm_011.json new file mode 100644 index 0000000..d098b5f --- /dev/null +++ b/idl/meteora_cp_amm_011.json @@ -0,0 +1,6779 @@ +{ + "address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", + "metadata": { + "name": "cp_amm", + "version": "0.1.1", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "add_liquidity", + "discriminator": [ + 181, + 157, + 89, + 67, + 143, + 182, + 52, + 72 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "AddLiquidityParameters" + } + } + } + ] + }, + { + "name": "claim_partner_fee", + "discriminator": [ + 97, + 206, + 39, + 105, + 94, + 94, + 126, + 148 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The treasury token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The treasury token b account" + ], + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "partner", + "signer": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "max_amount_a", + "type": "u64" + }, + { + "name": "max_amount_b", + "type": "u64" + } + ] + }, + { + "name": "claim_position_fee", + "discriminator": [ + 180, + 38, + 154, + 17, + 133, + 33, + 162, + 211 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "claim_protocol_fee", + "discriminator": [ + 165, + 228, + 133, + 48, + 99, + 249, + 255, + 33 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_a_account", + "docs": [ + "The treasury token a account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, + 9, + 89, + 123, + 106, + 114, + 131, + 251, + 50, + 173, + 254, + 250, + 10, + 80, + 160, + 84, + 143, + 100, + 81, + 249, + 134, + 112, + 30, + 213, + 50, + 166, + 239, + 78, + 53, + 175, + 188, + 85 + ] + }, + { + "kind": "account", + "path": "token_a_program" + }, + { + "kind": "account", + "path": "token_a_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": "token_b_account", + "docs": [ + "The treasury token b account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, + 9, + 89, + 123, + 106, + 114, + 131, + 251, + 50, + 173, + 254, + 250, + 10, + 80, + 160, + 84, + 143, + 100, + 81, + 249, + 134, + 112, + 30, + 213, + 50, + 166, + 239, + 78, + 53, + 175, + 188, + 85 + ] + }, + { + "kind": "account", + "path": "token_b_program" + }, + { + "kind": "account", + "path": "token_b_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": "claim_fee_operator", + "docs": [ + "Claim fee operator" + ] + }, + { + "name": "operator", + "docs": [ + "Operator" + ], + "signer": true, + "relations": [ + "claim_fee_operator" + ] + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "claim_reward", + "discriminator": [ + 149, + 95, + 181, + 242, + 94, + 90, + 158, + 162 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "reward_vault", + "docs": [ + "The vault token account for reward token" + ], + "writable": true + }, + { + "name": "reward_mint" + }, + { + "name": "user_token_account", + "writable": true + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "token_program" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + } + ] + }, + { + "name": "close_claim_fee_operator", + "discriminator": [ + 38, + 134, + 82, + 216, + 95, + 124, + 17, + 99 + ], + "accounts": [ + { + "name": "claim_fee_operator", + "writable": true + }, + { + "name": "rent_receiver", + "writable": true + }, + { + "name": "admin", + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "close_config", + "discriminator": [ + 145, + 9, + 72, + 157, + 95, + 125, + 61, + 85 + ], + "accounts": [ + { + "name": "config", + "writable": true + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "rent_receiver", + "writable": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "close_position", + "discriminator": [ + 123, + 134, + 81, + 0, + 49, + 68, + 98, + 98 + ], + "accounts": [ + { + "name": "position_nft_mint", + "docs": [ + "position_nft_mint" + ], + "writable": true + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ], + "writable": true + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "rent_receiver", + "writable": true + }, + { + "name": "owner", + "docs": [ + "Owner of position" + ], + "signer": true + }, + { + "name": "token_program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "create_claim_fee_operator", + "discriminator": [ + 169, + 62, + 207, + 107, + 58, + 187, + 162, + 109 + ], + "accounts": [ + { + "name": "claim_fee_operator", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 102, + 95, + 111, + 112, + 101, + 114, + 97, + 116, + 111, + 114 + ] + }, + { + "kind": "account", + "path": "operator" + } + ] + } + }, + { + "name": "operator" + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "create_config", + "docs": [ + "ADMIN FUNCTIONS /////" + ], + "discriminator": [ + 201, + 207, + 243, + 114, + 75, + 111, + 47, + 189 + ], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 111, + 110, + 102, + 105, + 103 + ] + }, + { + "kind": "arg", + "path": "index" + } + ] + } + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "index", + "type": "u64" + }, + { + "name": "config_parameters", + "type": { + "defined": { + "name": "StaticConfigParameters" + } + } + } + ] + }, + { + "name": "create_dynamic_config", + "discriminator": [ + 81, + 251, + 122, + 78, + 66, + 57, + 208, + 82 + ], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 111, + 110, + 102, + 105, + 103 + ] + }, + { + "kind": "arg", + "path": "index" + } + ] + } + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "index", + "type": "u64" + }, + { + "name": "config_parameters", + "type": { + "defined": { + "name": "DynamicConfigParameters" + } + } + } + ] + }, + { + "name": "create_position", + "discriminator": [ + 48, + 215, + 197, + 153, + 96, + 203, + 180, + 133 + ], + "accounts": [ + { + "name": "owner" + }, + { + "name": "position_nft_mint", + "docs": [ + "position_nft_mint" + ], + "writable": true, + "signer": true + }, + { + "name": "position_nft_account", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the position. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "token_program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "create_token_badge", + "discriminator": [ + 88, + 206, + 0, + 91, + 60, + 175, + 151, + 118 + ], + "accounts": [ + { + "name": "token_badge", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 98, + 97, + 100, + 103, + 101 + ] + }, + { + "kind": "account", + "path": "token_mint" + } + ] + } + }, + { + "name": "token_mint" + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "fund_reward", + "discriminator": [ + 188, + 50, + 249, + 165, + 93, + 151, + 38, + 63 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "reward_vault", + "writable": true + }, + { + "name": "reward_mint" + }, + { + "name": "funder_token_account", + "writable": true + }, + { + "name": "funder", + "signer": true + }, + { + "name": "token_program" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "carry_forward", + "type": "bool" + } + ] + }, + { + "name": "initialize_customizable_pool", + "discriminator": [ + 20, + 161, + 241, + 24, + 189, + 221, + 180, + 2 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "position_nft_mint", + "docs": [ + "position_nft_mint" + ], + "writable": true, + "signer": true + }, + { + "name": "position_nft_account", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "token_a_mint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "token_a_vault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_a_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "token_b_vault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_b_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payer_token_a", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payer_token_b", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "token_a_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_2022_program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "InitializeCustomizablePoolParameters" + } + } + } + ] + }, + { + "name": "initialize_pool", + "docs": [ + "USER FUNCTIONS ////" + ], + "discriminator": [ + 95, + 180, + 10, + 172, + 84, + 174, + 232, + 40 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "position_nft_mint", + "docs": [ + "position_nft_mint" + ], + "writable": true, + "signer": true + }, + { + "name": "position_nft_account", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "token_a_mint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "token_a_vault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_a_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "token_b_vault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_b_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payer_token_a", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payer_token_b", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "token_a_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_2022_program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "InitializePoolParameters" + } + } + } + ] + }, + { + "name": "initialize_pool_with_dynamic_config", + "discriminator": [ + 149, + 82, + 72, + 197, + 253, + 252, + 68, + 15 + ], + "accounts": [ + { + "name": "creator" + }, + { + "name": "position_nft_mint", + "docs": [ + "position_nft_mint" + ], + "writable": true, + "signer": true + }, + { + "name": "position_nft_account", + "docs": [ + "position nft account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110, + 95, + 110, + 102, + 116, + 95, + 97, + 99, + 99, + 111, + 117, + 110, + 116 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "pool_creator_authority", + "signer": true, + "relations": [ + "config" + ] + }, + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 115, + 105, + 116, + 105, + 111, + 110 + ] + }, + { + "kind": "account", + "path": "position_nft_mint" + } + ] + } + }, + { + "name": "token_a_mint", + "docs": [ + "Token a mint" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "Token b mint" + ] + }, + { + "name": "token_a_vault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_a_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "token_b_vault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "token_b_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payer_token_a", + "docs": [ + "payer token a account" + ], + "writable": true + }, + { + "name": "payer_token_b", + "docs": [ + "creator token b account" + ], + "writable": true + }, + { + "name": "token_a_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_2022_program", + "docs": [ + "Program to create NFT mint/token account and transfer for token22 account" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "InitializeCustomizablePoolParameters" + } + } + } + ] + }, + { + "name": "initialize_reward", + "discriminator": [ + 95, + 135, + 192, + 196, + 242, + 129, + 230, + 68 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "reward_vault", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 114, + 101, + 119, + 97, + 114, + 100, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "pool" + }, + { + "kind": "arg", + "path": "reward_index" + } + ] + } + }, + { + "name": "reward_mint" + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "token_program" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "reward_duration", + "type": "u64" + }, + { + "name": "funder", + "type": "pubkey" + } + ] + }, + { + "name": "lock_position", + "discriminator": [ + 227, + 62, + 2, + 252, + 247, + 10, + 171, + 185 + ], + "accounts": [ + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "vesting", + "writable": true, + "signer": true + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "VestingParameters" + } + } + } + ] + }, + { + "name": "permanent_lock_position", + "discriminator": [ + 165, + 176, + 125, + 6, + 231, + 171, + 186, + 213 + ], + "accounts": [ + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "permanent_lock_liquidity", + "type": "u128" + } + ] + }, + { + "name": "refresh_vesting", + "discriminator": [ + 9, + 94, + 216, + 14, + 116, + 204, + 247, + 0 + ], + "accounts": [ + { + "name": "pool", + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner" + } + ], + "args": [] + }, + { + "name": "remove_all_liquidity", + "discriminator": [ + 10, + 51, + 61, + 35, + 112, + 105, + 24, + 85 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "token_a_amount_threshold", + "type": "u64" + }, + { + "name": "token_b_amount_threshold", + "type": "u64" + } + ] + }, + { + "name": "remove_liquidity", + "discriminator": [ + 80, + 85, + 209, + 72, + 24, + 206, + 177, + 108 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true, + "relations": [ + "position" + ] + }, + { + "name": "position", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The user token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The user token b account" + ], + "writable": true + }, + { + "name": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "pool" + ] + }, + { + "name": "position_nft_account", + "docs": [ + "The token account for nft" + ] + }, + { + "name": "owner", + "docs": [ + "owner of position" + ], + "signer": true + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "RemoveLiquidityParameters" + } + } + } + ] + }, + { + "name": "set_pool_status", + "discriminator": [ + 112, + 87, + 135, + 223, + 83, + 204, + 132, + 53 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "admin", + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "status", + "type": "u8" + } + ] + }, + { + "name": "swap", + "discriminator": [ + 248, + 198, + 158, + 145, + 225, + 117, + 135, + 200 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "docs": [ + "Pool account" + ], + "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": "token_a_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_b_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_a_mint", + "docs": [ + "The mint of token a" + ] + }, + { + "name": "token_b_mint", + "docs": [ + "The mint of token b" + ] + }, + { + "name": "payer", + "docs": [ + "The user performing the swap" + ], + "signer": true + }, + { + "name": "token_a_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_b_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "referral_token_account", + "docs": [ + "referral token account" + ], + "writable": true, + "optional": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "SwapParameters" + } + } + } + ] + }, + { + "name": "update_reward_duration", + "discriminator": [ + 138, + 174, + 196, + 169, + 213, + 235, + 254, + 107 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "admin", + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "new_duration", + "type": "u64" + } + ] + }, + { + "name": "update_reward_funder", + "discriminator": [ + 211, + 28, + 48, + 32, + 215, + 160, + 35, + 23 + ], + "accounts": [ + { + "name": "pool", + "writable": true + }, + { + "name": "admin", + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "new_funder", + "type": "pubkey" + } + ] + }, + { + "name": "withdraw_ineligible_reward", + "discriminator": [ + 148, + 206, + 42, + 195, + 247, + 49, + 103, + 8 + ], + "accounts": [ + { + "name": "pool_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 111, + 111, + 108, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "pool", + "writable": true + }, + { + "name": "reward_vault", + "writable": true + }, + { + "name": "reward_mint" + }, + { + "name": "funder_token_account", + "writable": true + }, + { + "name": "funder", + "signer": true + }, + { + "name": "token_program" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "reward_index", + "type": "u8" + } + ] + } + ], + "accounts": [ + { + "name": "ClaimFeeOperator", + "discriminator": [ + 166, + 48, + 134, + 86, + 34, + 200, + 188, + 150 + ] + }, + { + "name": "Config", + "discriminator": [ + 155, + 12, + 170, + 224, + 30, + 250, + 204, + 130 + ] + }, + { + "name": "Pool", + "discriminator": [ + 241, + 154, + 109, + 4, + 17, + 177, + 109, + 188 + ] + }, + { + "name": "Position", + "discriminator": [ + 170, + 188, + 143, + 228, + 122, + 64, + 247, + 208 + ] + }, + { + "name": "TokenBadge", + "discriminator": [ + 116, + 219, + 204, + 229, + 249, + 116, + 255, + 150 + ] + }, + { + "name": "Vesting", + "discriminator": [ + 100, + 149, + 66, + 138, + 95, + 200, + 128, + 241 + ] + } + ], + "events": [ + { + "name": "EvtAddLiquidity", + "discriminator": [ + 175, + 242, + 8, + 157, + 30, + 247, + 185, + 169 + ] + }, + { + "name": "EvtClaimPartnerFee", + "discriminator": [ + 118, + 99, + 77, + 10, + 226, + 1, + 1, + 87 + ] + }, + { + "name": "EvtClaimPositionFee", + "discriminator": [ + 198, + 182, + 183, + 52, + 97, + 12, + 49, + 56 + ] + }, + { + "name": "EvtClaimProtocolFee", + "discriminator": [ + 186, + 244, + 75, + 251, + 188, + 13, + 25, + 33 + ] + }, + { + "name": "EvtClaimReward", + "discriminator": [ + 218, + 86, + 147, + 200, + 235, + 188, + 215, + 231 + ] + }, + { + "name": "EvtCloseClaimFeeOperator", + "discriminator": [ + 111, + 39, + 37, + 55, + 110, + 216, + 194, + 23 + ] + }, + { + "name": "EvtCloseConfig", + "discriminator": [ + 36, + 30, + 239, + 45, + 58, + 132, + 14, + 5 + ] + }, + { + "name": "EvtClosePosition", + "discriminator": [ + 20, + 145, + 144, + 68, + 143, + 142, + 214, + 178 + ] + }, + { + "name": "EvtCreateClaimFeeOperator", + "discriminator": [ + 21, + 6, + 153, + 120, + 68, + 116, + 28, + 177 + ] + }, + { + "name": "EvtCreateConfig", + "discriminator": [ + 131, + 207, + 180, + 174, + 180, + 73, + 165, + 54 + ] + }, + { + "name": "EvtCreateDynamicConfig", + "discriminator": [ + 231, + 197, + 13, + 164, + 248, + 213, + 133, + 152 + ] + }, + { + "name": "EvtCreatePosition", + "discriminator": [ + 156, + 15, + 119, + 198, + 29, + 181, + 221, + 55 + ] + }, + { + "name": "EvtCreateTokenBadge", + "discriminator": [ + 141, + 120, + 134, + 116, + 34, + 28, + 114, + 160 + ] + }, + { + "name": "EvtFundReward", + "discriminator": [ + 104, + 233, + 237, + 122, + 199, + 191, + 121, + 85 + ] + }, + { + "name": "EvtInitializePool", + "discriminator": [ + 228, + 50, + 246, + 85, + 203, + 66, + 134, + 37 + ] + }, + { + "name": "EvtInitializeReward", + "discriminator": [ + 129, + 91, + 188, + 3, + 246, + 52, + 185, + 249 + ] + }, + { + "name": "EvtLockPosition", + "discriminator": [ + 168, + 63, + 108, + 83, + 219, + 82, + 2, + 200 + ] + }, + { + "name": "EvtPermanentLockPosition", + "discriminator": [ + 145, + 143, + 162, + 218, + 218, + 80, + 67, + 11 + ] + }, + { + "name": "EvtRemoveLiquidity", + "discriminator": [ + 87, + 46, + 88, + 98, + 175, + 96, + 34, + 91 + ] + }, + { + "name": "EvtSetPoolStatus", + "discriminator": [ + 100, + 213, + 74, + 3, + 95, + 91, + 228, + 146 + ] + }, + { + "name": "EvtSwap", + "discriminator": [ + 27, + 60, + 21, + 213, + 138, + 170, + 187, + 147 + ] + }, + { + "name": "EvtUpdateRewardDuration", + "discriminator": [ + 149, + 135, + 65, + 231, + 129, + 153, + 65, + 57 + ] + }, + { + "name": "EvtUpdateRewardFunder", + "discriminator": [ + 76, + 154, + 208, + 13, + 40, + 115, + 246, + 146 + ] + }, + { + "name": "EvtWithdrawIneligibleReward", + "discriminator": [ + 248, + 215, + 184, + 78, + 31, + 180, + 179, + 168 + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "MathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6001, + "name": "InvalidFee", + "msg": "Invalid fee setup" + }, + { + "code": 6002, + "name": "ExceededSlippage", + "msg": "Exceeded slippage tolerance" + }, + { + "code": 6003, + "name": "PoolDisabled", + "msg": "Pool disabled" + }, + { + "code": 6004, + "name": "ExceedMaxFeeBps", + "msg": "Exceeded max fee bps" + }, + { + "code": 6005, + "name": "InvalidAdmin", + "msg": "Invalid admin" + }, + { + "code": 6006, + "name": "AmountIsZero", + "msg": "Amount is zero" + }, + { + "code": 6007, + "name": "TypeCastFailed", + "msg": "Type cast error" + }, + { + "code": 6008, + "name": "UnableToModifyActivationPoint", + "msg": "Unable to modify activation point" + }, + { + "code": 6009, + "name": "InvalidAuthorityToCreateThePool", + "msg": "Invalid authority to create the pool" + }, + { + "code": 6010, + "name": "InvalidActivationType", + "msg": "Invalid activation type" + }, + { + "code": 6011, + "name": "InvalidActivationPoint", + "msg": "Invalid activation point" + }, + { + "code": 6012, + "name": "InvalidQuoteMint", + "msg": "Quote token must be SOL,USDC" + }, + { + "code": 6013, + "name": "InvalidFeeCurve", + "msg": "Invalid fee curve" + }, + { + "code": 6014, + "name": "InvalidPriceRange", + "msg": "Invalid Price Range" + }, + { + "code": 6015, + "name": "PriceRangeViolation", + "msg": "Trade is over price range" + }, + { + "code": 6016, + "name": "InvalidParameters", + "msg": "Invalid parameters" + }, + { + "code": 6017, + "name": "InvalidCollectFeeMode", + "msg": "Invalid collect fee mode" + }, + { + "code": 6018, + "name": "InvalidInput", + "msg": "Invalid input" + }, + { + "code": 6019, + "name": "CannotCreateTokenBadgeOnSupportedMint", + "msg": "Cannot create token badge on supported mint" + }, + { + "code": 6020, + "name": "InvalidTokenBadge", + "msg": "Invalid token badge" + }, + { + "code": 6021, + "name": "InvalidMinimumLiquidity", + "msg": "Invalid minimum liquidity" + }, + { + "code": 6022, + "name": "InvalidVestingInfo", + "msg": "Invalid vesting information" + }, + { + "code": 6023, + "name": "InsufficientLiquidity", + "msg": "Insufficient liquidity" + }, + { + "code": 6024, + "name": "InvalidVestingAccount", + "msg": "Invalid vesting account" + }, + { + "code": 6025, + "name": "InvalidPoolStatus", + "msg": "Invalid pool status" + }, + { + "code": 6026, + "name": "UnsupportNativeMintToken2022", + "msg": "Unsupported native mint token2022" + }, + { + "code": 6027, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6028, + "name": "InvalidRewardDuration", + "msg": "Invalid reward duration" + }, + { + "code": 6029, + "name": "RewardInitialized", + "msg": "Reward already initialized" + }, + { + "code": 6030, + "name": "RewardUninitialized", + "msg": "Reward not initialized" + }, + { + "code": 6031, + "name": "InvalidRewardVault", + "msg": "Invalid reward vault" + }, + { + "code": 6032, + "name": "MustWithdrawnIneligibleReward", + "msg": "Must withdraw ineligible reward" + }, + { + "code": 6033, + "name": "IdenticalRewardDuration", + "msg": "Reward duration is the same" + }, + { + "code": 6034, + "name": "RewardCampaignInProgress", + "msg": "Reward campaign in progress" + }, + { + "code": 6035, + "name": "IdenticalFunder", + "msg": "Identical funder" + }, + { + "code": 6036, + "name": "InvalidFunder", + "msg": "Invalid funder" + }, + { + "code": 6037, + "name": "RewardNotEnded", + "msg": "Reward not ended" + }, + { + "code": 6038, + "name": "FeeInverseIsIncorrect", + "msg": "Fee inverse is incorrect" + }, + { + "code": 6039, + "name": "PositionIsNotEmpty", + "msg": "Position is not empty" + }, + { + "code": 6040, + "name": "InvalidPoolCreatorAuthority", + "msg": "Invalid pool creator authority" + }, + { + "code": 6041, + "name": "InvalidConfigType", + "msg": "Invalid config type" + } + ], + "types": [ + { + "name": "AddLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidity_delta", + "docs": [ + "delta liquidity" + ], + "type": "u128" + }, + { + "name": "token_a_amount_threshold", + "docs": [ + "maximum token a amount" + ], + "type": "u64" + }, + { + "name": "token_b_amount_threshold", + "docs": [ + "maximum token b amount" + ], + "type": "u64" + } + ] + } + }, + { + "name": "BaseFeeConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_fee_numerator", + "type": "u64" + }, + { + "name": "fee_scheduler_mode", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "number_of_period", + "type": "u16" + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "reduction_factor", + "type": "u64" + } + ] + } + }, + { + "name": "BaseFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_fee_numerator", + "type": "u64" + }, + { + "name": "number_of_period", + "type": "u16" + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "reduction_factor", + "type": "u64" + }, + { + "name": "fee_scheduler_mode", + "type": "u8" + } + ] + } + }, + { + "name": "BaseFeeStruct", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_fee_numerator", + "type": "u64" + }, + { + "name": "fee_scheduler_mode", + "type": "u8" + }, + { + "name": "padding_0", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "number_of_period", + "type": "u16" + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "reduction_factor", + "type": "u64" + }, + { + "name": "padding_1", + "type": "u64" + } + ] + } + }, + { + "name": "ClaimFeeOperator", + "docs": [ + "Parameter that set by the protocol" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "operator", + "docs": [ + "operator" + ], + "type": "pubkey" + }, + { + "name": "_padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "Config", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "vault_config_key", + "docs": [ + "Vault config key" + ], + "type": "pubkey" + }, + { + "name": "pool_creator_authority", + "docs": [ + "Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config." + ], + "type": "pubkey" + }, + { + "name": "pool_fees", + "docs": [ + "Pool fee" + ], + "type": { + "defined": { + "name": "PoolFeesConfig" + } + } + }, + { + "name": "activation_type", + "docs": [ + "Activation type" + ], + "type": "u8" + }, + { + "name": "collect_fee_mode", + "docs": [ + "Collect fee mode" + ], + "type": "u8" + }, + { + "name": "config_type", + "docs": [ + "Config type mode, 0 for static, 1 for dynamic" + ], + "type": "u8" + }, + { + "name": "_padding_0", + "docs": [ + "padding 0" + ], + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "index", + "docs": [ + "config index" + ], + "type": "u64" + }, + { + "name": "sqrt_min_price", + "docs": [ + "sqrt min price" + ], + "type": "u128" + }, + { + "name": "sqrt_max_price", + "docs": [ + "sqrt max price" + ], + "type": "u128" + }, + { + "name": "_padding_1", + "docs": [ + "Fee curve point", + "Padding for further use" + ], + "type": { + "array": [ + "u64", + 10 + ] + } + } + ] + } + }, + { + "name": "DynamicConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_creator_authority", + "type": "pubkey" + } + ] + } + }, + { + "name": "DynamicFeeConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "max_volatility_accumulator", + "type": "u32" + }, + { + "name": "variable_fee_control", + "type": "u32" + }, + { + "name": "bin_step", + "type": "u16" + }, + { + "name": "filter_period", + "type": "u16" + }, + { + "name": "decay_period", + "type": "u16" + }, + { + "name": "reduction_factor", + "type": "u16" + }, + { + "name": "padding_1", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "bin_step_u128", + "type": "u128" + } + ] + } + }, + { + "name": "DynamicFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bin_step", + "type": "u16" + }, + { + "name": "bin_step_u128", + "type": "u128" + }, + { + "name": "filter_period", + "type": "u16" + }, + { + "name": "decay_period", + "type": "u16" + }, + { + "name": "reduction_factor", + "type": "u16" + }, + { + "name": "max_volatility_accumulator", + "type": "u32" + }, + { + "name": "variable_fee_control", + "type": "u32" + } + ] + } + }, + { + "name": "DynamicFeeStruct", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "max_volatility_accumulator", + "type": "u32" + }, + { + "name": "variable_fee_control", + "type": "u32" + }, + { + "name": "bin_step", + "type": "u16" + }, + { + "name": "filter_period", + "type": "u16" + }, + { + "name": "decay_period", + "type": "u16" + }, + { + "name": "reduction_factor", + "type": "u16" + }, + { + "name": "last_update_timestamp", + "type": "u64" + }, + { + "name": "bin_step_u128", + "type": "u128" + }, + { + "name": "sqrt_price_reference", + "type": "u128" + }, + { + "name": "volatility_accumulator", + "type": "u128" + }, + { + "name": "volatility_reference", + "type": "u128" + } + ] + } + }, + { + "name": "EvtAddLiquidity", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "params", + "type": { + "defined": { + "name": "AddLiquidityParameters" + } + } + }, + { + "name": "token_a_amount", + "type": "u64" + }, + { + "name": "token_b_amount", + "type": "u64" + }, + { + "name": "total_amount_a", + "type": "u64" + }, + { + "name": "total_amount_b", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimPartnerFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_a_amount", + "type": "u64" + }, + { + "name": "token_b_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimPositionFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "fee_a_claimed", + "type": "u64" + }, + { + "name": "fee_b_claimed", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimProtocolFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_a_amount", + "type": "u64" + }, + { + "name": "token_b_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "mint_reward", + "type": "pubkey" + }, + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "total_reward", + "type": "u64" + } + ] + } + }, + { + "name": "EvtCloseClaimFeeOperator", + "docs": [ + "Close claim fee operator" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "claim_fee_operator", + "type": "pubkey" + }, + { + "name": "operator", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCloseConfig", + "docs": [ + "Close config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "docs": [ + "Config pubkey" + ], + "type": "pubkey" + }, + { + "name": "admin", + "docs": [ + "admin pk" + ], + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtClosePosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "position_nft_mint", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateClaimFeeOperator", + "docs": [ + "Create claim fee operator" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "operator", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateConfig", + "docs": [ + "Create static config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "vault_config_key", + "type": "pubkey" + }, + { + "name": "pool_creator_authority", + "type": "pubkey" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "sqrt_min_price", + "type": "u128" + }, + { + "name": "sqrt_max_price", + "type": "u128" + }, + { + "name": "collect_fee_mode", + "type": "u8" + }, + { + "name": "index", + "type": "u64" + }, + { + "name": "config", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateDynamicConfig", + "docs": [ + "Create dynamic config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "type": "pubkey" + }, + { + "name": "pool_creator_authority", + "type": "pubkey" + }, + { + "name": "index", + "type": "u64" + } + ] + } + }, + { + "name": "EvtCreatePosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "position_nft_mint", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateTokenBadge", + "docs": [ + "Create token badge" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "token_mint", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtFundReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "funder", + "type": "pubkey" + }, + { + "name": "mint_reward", + "type": "pubkey" + }, + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "transfer_fee_excluded_amount_in", + "type": "u64" + } + ] + } + }, + { + "name": "EvtInitializePool", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_a_mint", + "type": "pubkey" + }, + { + "name": "token_b_mint", + "type": "pubkey" + }, + { + "name": "creator", + "type": "pubkey" + }, + { + "name": "payer", + "type": "pubkey" + }, + { + "name": "alpha_vault", + "type": "pubkey" + }, + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "sqrt_min_price", + "type": "u128" + }, + { + "name": "sqrt_max_price", + "type": "u128" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "collect_fee_mode", + "type": "u8" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrt_price", + "type": "u128" + }, + { + "name": "activation_point", + "type": "u64" + }, + { + "name": "token_a_flag", + "type": "u8" + }, + { + "name": "token_b_flag", + "type": "u8" + }, + { + "name": "token_a_amount", + "type": "u64" + }, + { + "name": "token_b_amount", + "type": "u64" + }, + { + "name": "total_amount_a", + "type": "u64" + }, + { + "name": "total_amount_b", + "type": "u64" + }, + { + "name": "pool_type", + "type": "u8" + } + ] + } + }, + { + "name": "EvtInitializeReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "reward_mint", + "type": "pubkey" + }, + { + "name": "funder", + "type": "pubkey" + }, + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "reward_duration", + "type": "u64" + } + ] + } + }, + { + "name": "EvtLockPosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "vesting", + "type": "pubkey" + }, + { + "name": "cliff_point", + "type": "u64" + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "cliff_unlock_liquidity", + "type": "u128" + }, + { + "name": "liquidity_per_period", + "type": "u128" + }, + { + "name": "number_of_period", + "type": "u16" + } + ] + } + }, + { + "name": "EvtPermanentLockPosition", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "lock_liquidity_amount", + "type": "u128" + }, + { + "name": "total_permanent_locked_liquidity", + "type": "u128" + } + ] + } + }, + { + "name": "EvtRemoveLiquidity", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "position", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "params", + "type": { + "defined": { + "name": "RemoveLiquidityParameters" + } + } + }, + { + "name": "token_a_amount", + "type": "u64" + }, + { + "name": "token_b_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtSetPoolStatus", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "status", + "type": "u8" + } + ] + } + }, + { + "name": "EvtSwap", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "trade_direction", + "type": "u8" + }, + { + "name": "has_referral", + "type": "bool" + }, + { + "name": "params", + "type": { + "defined": { + "name": "SwapParameters" + } + } + }, + { + "name": "swap_result", + "type": { + "defined": { + "name": "SwapResult" + } + } + }, + { + "name": "actual_amount_in", + "type": "u64" + }, + { + "name": "current_timestamp", + "type": "u64" + } + ] + } + }, + { + "name": "EvtUpdateRewardDuration", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "old_reward_duration", + "type": "u64" + }, + { + "name": "new_reward_duration", + "type": "u64" + } + ] + } + }, + { + "name": "EvtUpdateRewardFunder", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "reward_index", + "type": "u8" + }, + { + "name": "old_funder", + "type": "pubkey" + }, + { + "name": "new_funder", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtWithdrawIneligibleReward", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "reward_mint", + "type": "pubkey" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, + { + "name": "InitializeCustomizablePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "docs": [ + "pool fees" + ], + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "sqrt_min_price", + "docs": [ + "sqrt min price" + ], + "type": "u128" + }, + { + "name": "sqrt_max_price", + "docs": [ + "sqrt max price" + ], + "type": "u128" + }, + { + "name": "has_alpha_vault", + "docs": [ + "has alpha vault" + ], + "type": "bool" + }, + { + "name": "liquidity", + "docs": [ + "initialize liquidity" + ], + "type": "u128" + }, + { + "name": "sqrt_price", + "docs": [ + "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value" + ], + "type": "u128" + }, + { + "name": "activation_type", + "docs": [ + "activation type" + ], + "type": "u8" + }, + { + "name": "collect_fee_mode", + "docs": [ + "collect fee mode" + ], + "type": "u8" + }, + { + "name": "activation_point", + "docs": [ + "activation point" + ], + "type": { + "option": "u64" + } + } + ] + } + }, + { + "name": "InitializePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidity", + "docs": [ + "initialize liquidity" + ], + "type": "u128" + }, + { + "name": "sqrt_price", + "docs": [ + "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value" + ], + "type": "u128" + }, + { + "name": "activation_point", + "docs": [ + "activation point" + ], + "type": { + "option": "u64" + } + } + ] + } + }, + { + "name": "Pool", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "docs": [ + "Pool fee" + ], + "type": { + "defined": { + "name": "PoolFeesStruct" + } + } + }, + { + "name": "token_a_mint", + "docs": [ + "token a mint" + ], + "type": "pubkey" + }, + { + "name": "token_b_mint", + "docs": [ + "token b mint" + ], + "type": "pubkey" + }, + { + "name": "token_a_vault", + "docs": [ + "token a vault" + ], + "type": "pubkey" + }, + { + "name": "token_b_vault", + "docs": [ + "token b vault" + ], + "type": "pubkey" + }, + { + "name": "whitelisted_vault", + "docs": [ + "Whitelisted vault to be able to buy pool before activation_point" + ], + "type": "pubkey" + }, + { + "name": "partner", + "docs": [ + "partner" + ], + "type": "pubkey" + }, + { + "name": "liquidity", + "docs": [ + "liquidity share" + ], + "type": "u128" + }, + { + "name": "_padding", + "docs": [ + "padding, previous reserve amount, be careful to use that field" + ], + "type": "u128" + }, + { + "name": "protocol_a_fee", + "docs": [ + "protocol a fee" + ], + "type": "u64" + }, + { + "name": "protocol_b_fee", + "docs": [ + "protocol b fee" + ], + "type": "u64" + }, + { + "name": "partner_a_fee", + "docs": [ + "partner a fee" + ], + "type": "u64" + }, + { + "name": "partner_b_fee", + "docs": [ + "partner b fee" + ], + "type": "u64" + }, + { + "name": "sqrt_min_price", + "docs": [ + "min price" + ], + "type": "u128" + }, + { + "name": "sqrt_max_price", + "docs": [ + "max price" + ], + "type": "u128" + }, + { + "name": "sqrt_price", + "docs": [ + "current price" + ], + "type": "u128" + }, + { + "name": "activation_point", + "docs": [ + "Activation point, can be slot or timestamp" + ], + "type": "u64" + }, + { + "name": "activation_type", + "docs": [ + "Activation type, 0 means by slot, 1 means by timestamp" + ], + "type": "u8" + }, + { + "name": "pool_status", + "docs": [ + "pool status, 0: enable, 1 disable" + ], + "type": "u8" + }, + { + "name": "token_a_flag", + "docs": [ + "token a flag" + ], + "type": "u8" + }, + { + "name": "token_b_flag", + "docs": [ + "token b flag" + ], + "type": "u8" + }, + { + "name": "collect_fee_mode", + "docs": [ + "0 is collect fee in both token, 1 only collect fee in token a, 2 only collect fee in token b" + ], + "type": "u8" + }, + { + "name": "pool_type", + "docs": [ + "pool type" + ], + "type": "u8" + }, + { + "name": "_padding_0", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u8", + 2 + ] + } + }, + { + "name": "fee_a_per_liquidity", + "docs": [ + "cumulative" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "fee_b_per_liquidity", + "docs": [ + "cumulative" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "permanent_lock_liquidity", + "type": "u128" + }, + { + "name": "metrics", + "docs": [ + "metrics" + ], + "type": { + "defined": { + "name": "PoolMetrics" + } + } + }, + { + "name": "_padding_1", + "docs": [ + "Padding for further use" + ], + "type": { + "array": [ + "u64", + 10 + ] + } + }, + { + "name": "reward_infos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": { + "name": "RewardInfo" + } + }, + 2 + ] + } + } + ] + } + }, + { + "name": "PoolFeeParameters", + "docs": [ + "Information regarding fee charges" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "docs": [ + "Base fee" + ], + "type": { + "defined": { + "name": "BaseFeeParameters" + } + } + }, + { + "name": "protocol_fee_percent", + "docs": [ + "Protocol trade fee percent" + ], + "type": "u8" + }, + { + "name": "partner_fee_percent", + "docs": [ + "partner fee percent" + ], + "type": "u8" + }, + { + "name": "referral_fee_percent", + "docs": [ + "referral fee percent" + ], + "type": "u8" + }, + { + "name": "dynamic_fee", + "docs": [ + "dynamic fee" + ], + "type": { + "option": { + "defined": { + "name": "DynamicFeeParameters" + } + } + } + } + ] + } + }, + { + "name": "PoolFeesConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "type": { + "defined": { + "name": "BaseFeeConfig" + } + } + }, + { + "name": "dynamic_fee", + "type": { + "defined": { + "name": "DynamicFeeConfig" + } + } + }, + { + "name": "protocol_fee_percent", + "type": "u8" + }, + { + "name": "partner_fee_percent", + "type": "u8" + }, + { + "name": "referral_fee_percent", + "type": "u8" + }, + { + "name": "padding_0", + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "padding_1", + "type": { + "array": [ + "u64", + 5 + ] + } + } + ] + } + }, + { + "name": "PoolFeesStruct", + "docs": [ + "Information regarding fee charges", + "trading_fee = amount * trade_fee_numerator / denominator", + "protocol_fee = trading_fee * protocol_fee_percentage / 100", + "referral_fee = protocol_fee * referral_percentage / 100", + "partner_fee = (protocol_fee - referral_fee) * partner_fee_percentage / denominator" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "docs": [ + "Trade fees are extra token amounts that are held inside the token", + "accounts during a trade, making the value of liquidity tokens rise.", + "Trade fee numerator" + ], + "type": { + "defined": { + "name": "BaseFeeStruct" + } + } + }, + { + "name": "protocol_fee_percent", + "docs": [ + "Protocol trading fees are extra token amounts that are held inside the token", + "accounts during a trade, with the equivalent in pool tokens minted to", + "the protocol of the program.", + "Protocol trade fee numerator" + ], + "type": "u8" + }, + { + "name": "partner_fee_percent", + "docs": [ + "partner fee" + ], + "type": "u8" + }, + { + "name": "referral_fee_percent", + "docs": [ + "referral fee" + ], + "type": "u8" + }, + { + "name": "padding_0", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u8", + 5 + ] + } + }, + { + "name": "dynamic_fee", + "docs": [ + "dynamic fee" + ], + "type": { + "defined": { + "name": "DynamicFeeStruct" + } + } + }, + { + "name": "padding_1", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u64", + 2 + ] + } + } + ] + } + }, + { + "name": "PoolMetrics", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "total_lp_a_fee", + "type": "u128" + }, + { + "name": "total_lp_b_fee", + "type": "u128" + }, + { + "name": "total_protocol_a_fee", + "type": "u64" + }, + { + "name": "total_protocol_b_fee", + "type": "u64" + }, + { + "name": "total_partner_a_fee", + "type": "u64" + }, + { + "name": "total_partner_b_fee", + "type": "u64" + }, + { + "name": "total_position", + "type": "u64" + }, + { + "name": "padding", + "type": "u64" + } + ] + } + }, + { + "name": "Position", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "nft_mint", + "docs": [ + "nft mint" + ], + "type": "pubkey" + }, + { + "name": "fee_a_per_token_checkpoint", + "docs": [ + "fee a checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "fee_b_per_token_checkpoint", + "docs": [ + "fee b checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "fee_a_pending", + "docs": [ + "fee a pending" + ], + "type": "u64" + }, + { + "name": "fee_b_pending", + "docs": [ + "fee b pending" + ], + "type": "u64" + }, + { + "name": "unlocked_liquidity", + "docs": [ + "unlock liquidity" + ], + "type": "u128" + }, + { + "name": "vested_liquidity", + "docs": [ + "vesting liquidity" + ], + "type": "u128" + }, + { + "name": "permanent_locked_liquidity", + "docs": [ + "permanent locked liquidity" + ], + "type": "u128" + }, + { + "name": "metrics", + "docs": [ + "metrics" + ], + "type": { + "defined": { + "name": "PositionMetrics" + } + } + }, + { + "name": "reward_infos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": { + "name": "UserRewardInfo" + } + }, + 2 + ] + } + }, + { + "name": "padding", + "docs": [ + "padding for future usage" + ], + "type": { + "array": [ + "u128", + 6 + ] + } + } + ] + } + }, + { + "name": "PositionMetrics", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "total_claimed_a_fee", + "type": "u64" + }, + { + "name": "total_claimed_b_fee", + "type": "u64" + } + ] + } + }, + { + "name": "RemoveLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidity_delta", + "docs": [ + "delta liquidity" + ], + "type": "u128" + }, + { + "name": "token_a_amount_threshold", + "docs": [ + "minimum token a amount" + ], + "type": "u64" + }, + { + "name": "token_b_amount_threshold", + "docs": [ + "minimum token b amount" + ], + "type": "u64" + } + ] + } + }, + { + "name": "RewardInfo", + "docs": [ + "Stores the state relevant for tracking liquidity mining rewards" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "docs": [ + "Indicates if the reward has been initialized" + ], + "type": "u8" + }, + { + "name": "reward_token_flag", + "docs": [ + "reward token flag" + ], + "type": "u8" + }, + { + "name": "_padding_0", + "docs": [ + "padding" + ], + "type": { + "array": [ + "u8", + 6 + ] + } + }, + { + "name": "_padding_1", + "docs": [ + "Padding to ensure `reward_rate: u128` is 16-byte aligned" + ], + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "mint", + "docs": [ + "Reward token mint." + ], + "type": "pubkey" + }, + { + "name": "vault", + "docs": [ + "Reward vault token account." + ], + "type": "pubkey" + }, + { + "name": "funder", + "docs": [ + "Authority account that allows to fund rewards" + ], + "type": "pubkey" + }, + { + "name": "reward_duration", + "docs": [ + "reward duration" + ], + "type": "u64" + }, + { + "name": "reward_duration_end", + "docs": [ + "reward duration end" + ], + "type": "u64" + }, + { + "name": "reward_rate", + "docs": [ + "reward rate" + ], + "type": "u128" + }, + { + "name": "reward_per_token_stored", + "docs": [ + "Reward per token stored" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "last_update_time", + "docs": [ + "The last time reward states were updated." + ], + "type": "u64" + }, + { + "name": "cumulative_seconds_with_empty_liquidity_reward", + "docs": [ + "Accumulated seconds when the farm distributed rewards but the bin was empty.", + "These rewards will be carried over to the next reward time window." + ], + "type": "u64" + } + ] + } + }, + { + "name": "StaticConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "sqrt_min_price", + "type": "u128" + }, + { + "name": "sqrt_max_price", + "type": "u128" + }, + { + "name": "vault_config_key", + "type": "pubkey" + }, + { + "name": "pool_creator_authority", + "type": "pubkey" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "collect_fee_mode", + "type": "u8" + } + ] + } + }, + { + "name": "SwapParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_in", + "type": "u64" + }, + { + "name": "minimum_amount_out", + "type": "u64" + } + ] + } + }, + { + "name": "SwapResult", + "docs": [ + "Encodes all results of swapping" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "output_amount", + "type": "u64" + }, + { + "name": "next_sqrt_price", + "type": "u128" + }, + { + "name": "lp_fee", + "type": "u64" + }, + { + "name": "protocol_fee", + "type": "u64" + }, + { + "name": "partner_fee", + "type": "u64" + }, + { + "name": "referral_fee", + "type": "u64" + } + ] + } + }, + { + "name": "TokenBadge", + "docs": [ + "Parameter that set by the protocol" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "token_mint", + "docs": [ + "token mint" + ], + "type": "pubkey" + }, + { + "name": "_padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "UserRewardInfo", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "reward_per_token_checkpoint", + "docs": [ + "The latest update reward checkpoint" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "reward_pendings", + "docs": [ + "Current pending rewards" + ], + "type": "u64" + }, + { + "name": "total_claimed_rewards", + "docs": [ + "Total claimed rewards" + ], + "type": "u64" + } + ] + } + }, + { + "name": "Vesting", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "position", + "type": "pubkey" + }, + { + "name": "cliff_point", + "type": "u64" + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "cliff_unlock_liquidity", + "type": "u128" + }, + { + "name": "liquidity_per_period", + "type": "u128" + }, + { + "name": "total_released_liquidity", + "type": "u128" + }, + { + "name": "number_of_period", + "type": "u16" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 14 + ] + } + }, + { + "name": "padding2", + "type": { + "array": [ + "u128", + 4 + ] + } + } + ] + } + }, + { + "name": "VestingParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_point", + "type": { + "option": "u64" + } + }, + { + "name": "period_frequency", + "type": "u64" + }, + { + "name": "cliff_unlock_liquidity", + "type": "u128" + }, + { + "name": "liquidity_per_period", + "type": "u128" + }, + { + "name": "number_of_period", + "type": "u16" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/idl/meteora_cp_amm_015.json b/idl/meteora_cp_amm_015.json new file mode 100644 index 0000000..19c3187 --- /dev/null +++ b/idl/meteora_cp_amm_015.json @@ -0,0 +1,2536 @@ +{ + "address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", + "metadata": { "name": "cp_amm", "version": "0.1.5", "spec": "0.1.0", "description": "Created with Anchor" }, + "instructions": [ + { + "name": "add_liquidity", + "discriminator": [181, 157, 89, 67, 143, 182, 52, 72], + "accounts": [ + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "token_a_account", "docs": ["The user token a account"], "writable": true }, + { "name": "token_b_account", "docs": ["The user token b account"], "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "AddLiquidityParameters" } } }] + }, + { + "name": "claim_partner_fee", + "discriminator": [97, 206, 39, 105, 94, 94, 126, 148], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true }, + { "name": "token_a_account", "docs": ["The treasury token a account"], "writable": true }, + { "name": "token_b_account", "docs": ["The treasury token b account"], "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { "name": "partner", "signer": true, "relations": ["pool"] }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "max_amount_a", "type": "u64" }, + { "name": "max_amount_b", "type": "u64" } + ] + }, + { + "name": "claim_position_fee", + "discriminator": [180, 38, 154, 17, 133, 33, 162, 211], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "token_a_account", "docs": ["The user token a account"], "writable": true }, + { "name": "token_b_account", "docs": ["The user token b account"], "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "claim_protocol_fee", + "discriminator": [165, 228, 133, 48, 99, 249, 255, 33], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { + "name": "token_a_account", + "docs": ["The treasury token a account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, 9, 89, 123, 106, 114, 131, 251, 50, 173, 254, 250, 10, 80, 160, 84, 143, 100, + 81, 249, 134, 112, 30, 213, 50, 166, 239, 78, 53, 175, 188, 85 + ] + }, + { "kind": "account", "path": "token_a_program" }, + { "kind": "account", "path": "token_a_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": "token_b_account", + "docs": ["The treasury token b account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, 9, 89, 123, 106, 114, 131, 251, 50, 173, 254, 250, 10, 80, 160, 84, 143, 100, + 81, 249, 134, 112, 30, 213, 50, 166, 239, 78, 53, 175, 188, 85 + ] + }, + { "kind": "account", "path": "token_b_program" }, + { "kind": "account", "path": "token_b_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": "claim_fee_operator", "docs": ["Claim fee operator"] }, + { "name": "operator", "docs": ["Operator"], "signer": true, "relations": ["claim_fee_operator"] }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "max_amount_a", "type": "u64" }, + { "name": "max_amount_b", "type": "u64" } + ] + }, + { + "name": "claim_reward", + "discriminator": [149, 95, 181, 242, 94, 90, 158, 162], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "reward_vault", "docs": ["The vault token account for reward token"], "writable": true }, + { "name": "reward_mint" }, + { "name": "user_token_account", "writable": true }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "token_program" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "reward_index", "type": "u8" }, + { "name": "skip_reward", "type": "u8" } + ] + }, + { + "name": "close_claim_fee_operator", + "discriminator": [38, 134, 82, 216, 95, 124, 17, 99], + "accounts": [ + { "name": "claim_fee_operator", "writable": true }, + { "name": "rent_receiver", "writable": true }, + { "name": "admin", "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "close_config", + "discriminator": [145, 9, 72, 157, 95, 125, 61, 85], + "accounts": [ + { "name": "config", "writable": true }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "rent_receiver", "writable": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "close_position", + "discriminator": [123, 134, 81, 0, 49, 68, 98, 98], + "accounts": [ + { "name": "position_nft_mint", "docs": ["position_nft_mint"], "writable": true }, + { "name": "position_nft_account", "docs": ["The token account for nft"], "writable": true }, + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "rent_receiver", "writable": true }, + { "name": "owner", "docs": ["Owner of position"], "signer": true }, + { + "name": "token_program", + "docs": ["Program to create NFT mint/token account and transfer for token22 account"], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "close_token_badge", + "discriminator": [108, 146, 86, 110, 179, 254, 10, 104], + "accounts": [ + { "name": "token_badge", "writable": true }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "rent_receiver", "writable": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "create_claim_fee_operator", + "discriminator": [169, 62, 207, 107, 58, 187, 162, 109], + "accounts": [ + { + "name": "claim_fee_operator", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [99, 102, 95, 111, 112, 101, 114, 97, 116, 111, 114] }, + { "kind": "account", "path": "operator" } + ] + } + }, + { "name": "operator" }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "create_config", + "docs": ["ADMIN FUNCTIONS /////"], + "discriminator": [201, 207, 243, 114, 75, 111, 47, 189], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [99, 111, 110, 102, 105, 103] }, + { "kind": "arg", "path": "index" } + ] + } + }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "index", "type": "u64" }, + { "name": "config_parameters", "type": { "defined": { "name": "StaticConfigParameters" } } } + ] + }, + { + "name": "create_dynamic_config", + "discriminator": [81, 251, 122, 78, 66, 57, 208, 82], + "accounts": [ + { + "name": "config", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [99, 111, 110, 102, 105, 103] }, + { "kind": "arg", "path": "index" } + ] + } + }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "index", "type": "u64" }, + { "name": "config_parameters", "type": { "defined": { "name": "DynamicConfigParameters" } } } + ] + }, + { + "name": "create_position", + "discriminator": [48, 215, 197, 153, 96, 203, 180, 133], + "accounts": [ + { "name": "owner" }, + { "name": "position_nft_mint", "docs": ["position_nft_mint"], "writable": true, "signer": true }, + { + "name": "position_nft_account", + "docs": ["position nft account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, + 110, 116 + ] + }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { "name": "pool", "writable": true }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [112, 111, 115, 105, 116, 105, 111, 110] }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { + "name": "payer", + "docs": ["Address paying to create the position. Can be anyone"], + "writable": true, + "signer": true + }, + { + "name": "token_program", + "docs": ["Program to create NFT mint/token account and transfer for token22 account"], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "create_token_badge", + "discriminator": [88, 206, 0, 91, 60, 175, 151, 118], + "accounts": [ + { + "name": "token_badge", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 98, 97, 100, 103, 101] }, + { "kind": "account", "path": "token_mint" } + ] + } + }, + { "name": "token_mint" }, + { "name": "admin", "writable": true, "signer": true }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [] + }, + { + "name": "fund_reward", + "discriminator": [188, 50, 249, 165, 93, 151, 38, 63], + "accounts": [ + { "name": "pool", "writable": true }, + { "name": "reward_vault", "writable": true }, + { "name": "reward_mint" }, + { "name": "funder_token_account", "writable": true }, + { "name": "funder", "signer": true }, + { "name": "token_program" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "reward_index", "type": "u8" }, + { "name": "amount", "type": "u64" }, + { "name": "carry_forward", "type": "bool" } + ] + }, + { + "name": "initialize_customizable_pool", + "discriminator": [20, 161, 241, 24, 189, 221, 180, 2], + "accounts": [ + { "name": "creator" }, + { "name": "position_nft_mint", "docs": ["position_nft_mint"], "writable": true, "signer": true }, + { + "name": "position_nft_account", + "docs": ["position nft account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, + 110, 116 + ] + }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { + "name": "payer", + "docs": ["Address paying to create the pool. Can be anyone"], + "writable": true, + "signer": true + }, + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "docs": ["Initialize an account to store the pool state"], "writable": true }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [112, 111, 115, 105, 116, 105, 111, 110] }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { "name": "token_a_mint", "docs": ["Token a mint"] }, + { "name": "token_b_mint", "docs": ["Token b mint"] }, + { + "name": "token_a_vault", + "docs": ["Token a vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_a_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { + "name": "token_b_vault", + "docs": ["Token b vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_b_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { "name": "payer_token_a", "docs": ["payer token a account"], "writable": true }, + { "name": "payer_token_b", "docs": ["creator token b account"], "writable": true }, + { "name": "token_a_program", "docs": ["Program to create mint account and mint tokens"] }, + { "name": "token_b_program", "docs": ["Program to create mint account and mint tokens"] }, + { + "name": "token_2022_program", + "docs": ["Program to create NFT mint/token account and transfer for token22 account"], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "InitializeCustomizablePoolParameters" } } }] + }, + { + "name": "initialize_pool", + "docs": ["USER FUNCTIONS ////"], + "discriminator": [95, 180, 10, 172, 84, 174, 232, 40], + "accounts": [ + { "name": "creator" }, + { "name": "position_nft_mint", "docs": ["position_nft_mint"], "writable": true, "signer": true }, + { + "name": "position_nft_account", + "docs": ["position nft account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, + 110, 116 + ] + }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { + "name": "payer", + "docs": ["Address paying to create the pool. Can be anyone"], + "writable": true, + "signer": true + }, + { "name": "config", "docs": ["Which config the pool belongs to."] }, + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "docs": ["Initialize an account to store the pool state"], "writable": true }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [112, 111, 115, 105, 116, 105, 111, 110] }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { "name": "token_a_mint", "docs": ["Token a mint"] }, + { "name": "token_b_mint", "docs": ["Token b mint"] }, + { + "name": "token_a_vault", + "docs": ["Token a vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_a_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { + "name": "token_b_vault", + "docs": ["Token b vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_b_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { "name": "payer_token_a", "docs": ["payer token a account"], "writable": true }, + { "name": "payer_token_b", "docs": ["creator token b account"], "writable": true }, + { "name": "token_a_program", "docs": ["Program to create mint account and mint tokens"] }, + { "name": "token_b_program", "docs": ["Program to create mint account and mint tokens"] }, + { + "name": "token_2022_program", + "docs": ["Program to create NFT mint/token account and transfer for token22 account"], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "InitializePoolParameters" } } }] + }, + { + "name": "initialize_pool_with_dynamic_config", + "discriminator": [149, 82, 72, 197, 253, 252, 68, 15], + "accounts": [ + { "name": "creator" }, + { "name": "position_nft_mint", "docs": ["position_nft_mint"], "writable": true, "signer": true }, + { + "name": "position_nft_account", + "docs": ["position nft account"], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, + 110, 116 + ] + }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { + "name": "payer", + "docs": ["Address paying to create the pool. Can be anyone"], + "writable": true, + "signer": true + }, + { "name": "pool_creator_authority", "signer": true, "relations": ["config"] }, + { "name": "config", "docs": ["Which config the pool belongs to."] }, + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "docs": ["Initialize an account to store the pool state"], "writable": true }, + { + "name": "position", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [112, 111, 115, 105, 116, 105, 111, 110] }, + { "kind": "account", "path": "position_nft_mint" } + ] + } + }, + { "name": "token_a_mint", "docs": ["Token a mint"] }, + { "name": "token_b_mint", "docs": ["Token b mint"] }, + { + "name": "token_a_vault", + "docs": ["Token a vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_a_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { + "name": "token_b_vault", + "docs": ["Token b vault for the pool"], + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "token_b_mint" }, + { "kind": "account", "path": "pool" } + ] + } + }, + { "name": "payer_token_a", "docs": ["payer token a account"], "writable": true }, + { "name": "payer_token_b", "docs": ["creator token b account"], "writable": true }, + { "name": "token_a_program", "docs": ["Program to create mint account and mint tokens"] }, + { "name": "token_b_program", "docs": ["Program to create mint account and mint tokens"] }, + { + "name": "token_2022_program", + "docs": ["Program to create NFT mint/token account and transfer for token22 account"], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "InitializeCustomizablePoolParameters" } } }] + }, + { + "name": "initialize_reward", + "discriminator": [95, 135, 192, 196, 242, 129, 230, 68], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true }, + { + "name": "reward_vault", + "writable": true, + "pda": { + "seeds": [ + { "kind": "const", "value": [114, 101, 119, 97, 114, 100, 95, 118, 97, 117, 108, 116] }, + { "kind": "account", "path": "pool" }, + { "kind": "arg", "path": "reward_index" } + ] + } + }, + { "name": "reward_mint" }, + { "name": "signer", "signer": true }, + { "name": "payer", "writable": true, "signer": true }, + { "name": "token_program" }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "reward_index", "type": "u8" }, + { "name": "reward_duration", "type": "u64" }, + { "name": "funder", "type": "pubkey" } + ] + }, + { + "name": "lock_position", + "discriminator": [227, 62, 2, 252, 247, 10, 171, 185], + "accounts": [ + { "name": "pool", "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "vesting", "writable": true, "signer": true }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "payer", "writable": true, "signer": true }, + { "name": "system_program", "address": "11111111111111111111111111111111" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "VestingParameters" } } }] + }, + { + "name": "permanent_lock_position", + "discriminator": [165, 176, 125, 6, 231, 171, 186, 213], + "accounts": [ + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "permanent_lock_liquidity", "type": "u128" }] + }, + { + "name": "refresh_vesting", + "discriminator": [9, 94, 216, 14, 116, 204, 247, 0], + "accounts": [ + { "name": "pool", "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner" } + ], + "args": [] + }, + { + "name": "remove_all_liquidity", + "discriminator": [10, 51, 61, 35, 112, 105, 24, 85], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "token_a_account", "docs": ["The user token a account"], "writable": true }, + { "name": "token_b_account", "docs": ["The user token b account"], "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "token_a_amount_threshold", "type": "u64" }, + { "name": "token_b_amount_threshold", "type": "u64" } + ] + }, + { + "name": "remove_liquidity", + "discriminator": [80, 85, 209, 72, 24, 206, 177, 108], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true, "relations": ["position"] }, + { "name": "position", "writable": true }, + { "name": "token_a_account", "docs": ["The user token a account"], "writable": true }, + { "name": "token_b_account", "docs": ["The user token b account"], "writable": true }, + { + "name": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"], "relations": ["pool"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"], "relations": ["pool"] }, + { "name": "position_nft_account", "docs": ["The token account for nft"] }, + { "name": "owner", "docs": ["owner of position"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "RemoveLiquidityParameters" } } }] + }, + { + "name": "set_pool_status", + "discriminator": [112, 87, 135, 223, 83, 204, 132, 53], + "accounts": [ + { "name": "pool", "writable": true }, + { "name": "admin", "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "status", "type": "u8" }] + }, + { + "name": "split_position", + "discriminator": [172, 241, 221, 138, 161, 29, 253, 42], + "accounts": [ + { "name": "pool", "writable": true, "relations": ["first_position", "second_position"] }, + { "name": "first_position", "docs": ["The first position"], "writable": true }, + { "name": "first_position_nft_account", "docs": ["The token account for position nft"] }, + { "name": "second_position", "docs": ["The second position"], "writable": true }, + { "name": "second_position_nft_account", "docs": ["The token account for position nft"] }, + { "name": "first_owner", "docs": ["Owner of first position"], "signer": true }, + { "name": "second_owner", "docs": ["Owner of second position"], "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "SplitPositionParameters" } } }] + }, + { + "name": "split_position2", + "discriminator": [221, 147, 228, 207, 140, 212, 17, 119], + "accounts": [ + { "name": "pool", "writable": true, "relations": ["first_position", "second_position"] }, + { "name": "first_position", "docs": ["The first position"], "writable": true }, + { "name": "first_position_nft_account", "docs": ["The token account for position nft"] }, + { "name": "second_position", "docs": ["The second position"], "writable": true }, + { "name": "second_position_nft_account", "docs": ["The token account for position nft"] }, + { "name": "first_owner", "docs": ["Owner of first position"], "signer": true }, + { "name": "second_owner", "docs": ["Owner of second position"], "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "numerator", "type": "u32" }] + }, + { + "name": "swap", + "discriminator": [248, 198, 158, 145, 225, 117, 135, 200], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "docs": ["Pool account"], "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": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"] }, + { "name": "payer", "docs": ["The user performing the swap"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "referral_token_account", + "docs": ["referral token account"], + "writable": true, + "optional": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "SwapParameters" } } }] + }, + { + "name": "swap2", + "discriminator": [65, 75, 63, 76, 235, 91, 91, 136], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "docs": ["Pool account"], "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": "token_a_vault", + "docs": ["The vault token account for input token"], + "writable": true, + "relations": ["pool"] + }, + { + "name": "token_b_vault", + "docs": ["The vault token account for output token"], + "writable": true, + "relations": ["pool"] + }, + { "name": "token_a_mint", "docs": ["The mint of token a"] }, + { "name": "token_b_mint", "docs": ["The mint of token b"] }, + { "name": "payer", "docs": ["The user performing the swap"], "signer": true }, + { "name": "token_a_program", "docs": ["Token a program"] }, + { "name": "token_b_program", "docs": ["Token b program"] }, + { + "name": "referral_token_account", + "docs": ["referral token account"], + "writable": true, + "optional": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "params", "type": { "defined": { "name": "SwapParameters2" } } }] + }, + { + "name": "update_reward_duration", + "discriminator": [138, 174, 196, 169, 213, 235, 254, 107], + "accounts": [ + { "name": "pool", "writable": true }, + { "name": "signer", "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "reward_index", "type": "u8" }, + { "name": "new_duration", "type": "u64" } + ] + }, + { + "name": "update_reward_funder", + "discriminator": [211, 28, 48, 32, 215, 160, 35, 23], + "accounts": [ + { "name": "pool", "writable": true }, + { "name": "signer", "signer": true }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [ + { "name": "reward_index", "type": "u8" }, + { "name": "new_funder", "type": "pubkey" } + ] + }, + { + "name": "withdraw_ineligible_reward", + "discriminator": [148, 206, 42, 195, 247, 49, 103, 8], + "accounts": [ + { "name": "pool_authority", "address": "HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC" }, + { "name": "pool", "writable": true }, + { "name": "reward_vault", "writable": true }, + { "name": "reward_mint" }, + { "name": "funder_token_account", "writable": true }, + { "name": "funder", "signer": true }, + { "name": "token_program" }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 + ] + } + ] + } + }, + { "name": "program" } + ], + "args": [{ "name": "reward_index", "type": "u8" }] + } + ], + "accounts": [ + { "name": "ClaimFeeOperator", "discriminator": [166, 48, 134, 86, 34, 200, 188, 150] }, + { "name": "Config", "discriminator": [155, 12, 170, 224, 30, 250, 204, 130] }, + { "name": "Pool", "discriminator": [241, 154, 109, 4, 17, 177, 109, 188] }, + { "name": "Position", "discriminator": [170, 188, 143, 228, 122, 64, 247, 208] }, + { "name": "TokenBadge", "discriminator": [116, 219, 204, 229, 249, 116, 255, 150] }, + { "name": "Vesting", "discriminator": [100, 149, 66, 138, 95, 200, 128, 241] } + ], + "events": [ + { "name": "EvtAddLiquidity", "discriminator": [175, 242, 8, 157, 30, 247, 185, 169] }, + { "name": "EvtClaimPartnerFee", "discriminator": [118, 99, 77, 10, 226, 1, 1, 87] }, + { "name": "EvtClaimPositionFee", "discriminator": [198, 182, 183, 52, 97, 12, 49, 56] }, + { "name": "EvtClaimProtocolFee", "discriminator": [186, 244, 75, 251, 188, 13, 25, 33] }, + { "name": "EvtClaimReward", "discriminator": [218, 86, 147, 200, 235, 188, 215, 231] }, + { "name": "EvtCloseClaimFeeOperator", "discriminator": [111, 39, 37, 55, 110, 216, 194, 23] }, + { "name": "EvtCloseConfig", "discriminator": [36, 30, 239, 45, 58, 132, 14, 5] }, + { "name": "EvtClosePosition", "discriminator": [20, 145, 144, 68, 143, 142, 214, 178] }, + { "name": "EvtCreateClaimFeeOperator", "discriminator": [21, 6, 153, 120, 68, 116, 28, 177] }, + { "name": "EvtCreateConfig", "discriminator": [131, 207, 180, 174, 180, 73, 165, 54] }, + { "name": "EvtCreateDynamicConfig", "discriminator": [231, 197, 13, 164, 248, 213, 133, 152] }, + { "name": "EvtCreatePosition", "discriminator": [156, 15, 119, 198, 29, 181, 221, 55] }, + { "name": "EvtCreateTokenBadge", "discriminator": [141, 120, 134, 116, 34, 28, 114, 160] }, + { "name": "EvtFundReward", "discriminator": [104, 233, 237, 122, 199, 191, 121, 85] }, + { "name": "EvtInitializePool", "discriminator": [228, 50, 246, 85, 203, 66, 134, 37] }, + { "name": "EvtInitializeReward", "discriminator": [129, 91, 188, 3, 246, 52, 185, 249] }, + { "name": "EvtLiquidityChange", "discriminator": [197, 171, 78, 127, 224, 211, 87, 13] }, + { "name": "EvtLockPosition", "discriminator": [168, 63, 108, 83, 219, 82, 2, 200] }, + { "name": "EvtPermanentLockPosition", "discriminator": [145, 143, 162, 218, 218, 80, 67, 11] }, + { "name": "EvtRemoveLiquidity", "discriminator": [87, 46, 88, 98, 175, 96, 34, 91] }, + { "name": "EvtSetPoolStatus", "discriminator": [100, 213, 74, 3, 95, 91, 228, 146] }, + { "name": "EvtSplitPosition2", "discriminator": [165, 32, 203, 174, 72, 100, 233, 103] }, + { "name": "EvtSwap", "discriminator": [27, 60, 21, 213, 138, 170, 187, 147] }, + { "name": "EvtSwap2", "discriminator": [189, 66, 51, 168, 38, 80, 117, 153] }, + { "name": "EvtUpdateRewardDuration", "discriminator": [149, 135, 65, 231, 129, 153, 65, 57] }, + { "name": "EvtUpdateRewardFunder", "discriminator": [76, 154, 208, 13, 40, 115, 246, 146] }, + { "name": "EvtWithdrawIneligibleReward", "discriminator": [248, 215, 184, 78, 31, 180, 179, 168] } + ], + "errors": [ + { "code": 6000, "name": "MathOverflow", "msg": "Math operation overflow" }, + { "code": 6001, "name": "InvalidFee", "msg": "Invalid fee setup" }, + { "code": 6002, "name": "ExceededSlippage", "msg": "Exceeded slippage tolerance" }, + { "code": 6003, "name": "PoolDisabled", "msg": "Pool disabled" }, + { "code": 6004, "name": "ExceedMaxFeeBps", "msg": "Exceeded max fee bps" }, + { "code": 6005, "name": "InvalidAdmin", "msg": "Invalid admin" }, + { "code": 6006, "name": "AmountIsZero", "msg": "Amount is zero" }, + { "code": 6007, "name": "TypeCastFailed", "msg": "Type cast error" }, + { "code": 6008, "name": "UnableToModifyActivationPoint", "msg": "Unable to modify activation point" }, + { "code": 6009, "name": "InvalidAuthorityToCreateThePool", "msg": "Invalid authority to create the pool" }, + { "code": 6010, "name": "InvalidActivationType", "msg": "Invalid activation type" }, + { "code": 6011, "name": "InvalidActivationPoint", "msg": "Invalid activation point" }, + { "code": 6012, "name": "InvalidQuoteMint", "msg": "Quote token must be SOL,USDC" }, + { "code": 6013, "name": "InvalidFeeCurve", "msg": "Invalid fee curve" }, + { "code": 6014, "name": "InvalidPriceRange", "msg": "Invalid Price Range" }, + { "code": 6015, "name": "PriceRangeViolation", "msg": "Trade is over price range" }, + { "code": 6016, "name": "InvalidParameters", "msg": "Invalid parameters" }, + { "code": 6017, "name": "InvalidCollectFeeMode", "msg": "Invalid collect fee mode" }, + { "code": 6018, "name": "InvalidInput", "msg": "Invalid input" }, + { + "code": 6019, + "name": "CannotCreateTokenBadgeOnSupportedMint", + "msg": "Cannot create token badge on supported mint" + }, + { "code": 6020, "name": "InvalidTokenBadge", "msg": "Invalid token badge" }, + { "code": 6021, "name": "InvalidMinimumLiquidity", "msg": "Invalid minimum liquidity" }, + { "code": 6022, "name": "InvalidVestingInfo", "msg": "Invalid vesting information" }, + { "code": 6023, "name": "InsufficientLiquidity", "msg": "Insufficient liquidity" }, + { "code": 6024, "name": "InvalidVestingAccount", "msg": "Invalid vesting account" }, + { "code": 6025, "name": "InvalidPoolStatus", "msg": "Invalid pool status" }, + { "code": 6026, "name": "UnsupportNativeMintToken2022", "msg": "Unsupported native mint token2022" }, + { "code": 6027, "name": "InvalidRewardIndex", "msg": "Invalid reward index" }, + { "code": 6028, "name": "InvalidRewardDuration", "msg": "Invalid reward duration" }, + { "code": 6029, "name": "RewardInitialized", "msg": "Reward already initialized" }, + { "code": 6030, "name": "RewardUninitialized", "msg": "Reward not initialized" }, + { "code": 6031, "name": "InvalidRewardVault", "msg": "Invalid reward vault" }, + { "code": 6032, "name": "MustWithdrawnIneligibleReward", "msg": "Must withdraw ineligible reward" }, + { "code": 6033, "name": "IdenticalRewardDuration", "msg": "Reward duration is the same" }, + { "code": 6034, "name": "RewardCampaignInProgress", "msg": "Reward campaign in progress" }, + { "code": 6035, "name": "IdenticalFunder", "msg": "Identical funder" }, + { "code": 6036, "name": "InvalidFunder", "msg": "Invalid funder" }, + { "code": 6037, "name": "RewardNotEnded", "msg": "Reward not ended" }, + { "code": 6038, "name": "FeeInverseIsIncorrect", "msg": "Fee inverse is incorrect" }, + { "code": 6039, "name": "PositionIsNotEmpty", "msg": "Position is not empty" }, + { "code": 6040, "name": "InvalidPoolCreatorAuthority", "msg": "Invalid pool creator authority" }, + { "code": 6041, "name": "InvalidConfigType", "msg": "Invalid config type" }, + { "code": 6042, "name": "InvalidPoolCreator", "msg": "Invalid pool creator" }, + { + "code": 6043, + "name": "RewardVaultFrozenSkipRequired", + "msg": "Reward vault is frozen, must skip reward to proceed" + }, + { "code": 6044, "name": "InvalidSplitPositionParameters", "msg": "Invalid parameters for split position" }, + { + "code": 6045, + "name": "UnsupportPositionHasVestingLock", + "msg": "Unsupported split position has vesting lock" + }, + { "code": 6046, "name": "SamePosition", "msg": "Same position" }, + { "code": 6047, "name": "InvalidBaseFeeMode", "msg": "Invalid base fee mode" }, + { "code": 6048, "name": "InvalidFeeRateLimiter", "msg": "Invalid fee rate limiter" }, + { + "code": 6049, + "name": "FailToValidateSingleSwapInstruction", + "msg": "Fail to validate single swap instruction in rate limiter" + }, + { "code": 6050, "name": "InvalidFeeScheduler", "msg": "Invalid fee scheduler" }, + { "code": 6051, "name": "UndeterminedError", "msg": "Undetermined error" }, + { "code": 6052, "name": "InvalidPoolVersion", "msg": "Invalid pool version" } + ], + "types": [ + { + "name": "AddLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "liquidity_delta", "docs": ["delta liquidity"], "type": "u128" }, + { "name": "token_a_amount_threshold", "docs": ["maximum token a amount"], "type": "u64" }, + { "name": "token_b_amount_threshold", "docs": ["maximum token b amount"], "type": "u64" } + ] + } + }, + { + "name": "BaseFeeConfig", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "cliff_fee_numerator", "type": "u64" }, + { "name": "base_fee_mode", "type": "u8" }, + { "name": "padding", "type": { "array": ["u8", 5] } }, + { "name": "first_factor", "type": "u16" }, + { "name": "second_factor", "type": { "array": ["u8", 8] } }, + { "name": "third_factor", "type": "u64" } + ] + } + }, + { + "name": "BaseFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "cliff_fee_numerator", "type": "u64" }, + { "name": "first_factor", "type": "u16" }, + { "name": "second_factor", "type": { "array": ["u8", 8] } }, + { "name": "third_factor", "type": "u64" }, + { "name": "base_fee_mode", "type": "u8" } + ] + } + }, + { + "name": "BaseFeeStruct", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "cliff_fee_numerator", "type": "u64" }, + { "name": "base_fee_mode", "type": "u8" }, + { "name": "padding_0", "type": { "array": ["u8", 5] } }, + { "name": "first_factor", "type": "u16" }, + { "name": "second_factor", "type": { "array": ["u8", 8] } }, + { "name": "third_factor", "type": "u64" }, + { "name": "padding_1", "type": "u64" } + ] + } + }, + { + "name": "ClaimFeeOperator", + "docs": ["Parameter that set by the protocol"], + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "operator", "docs": ["operator"], "type": "pubkey" }, + { "name": "_padding", "docs": ["Reserve"], "type": { "array": ["u8", 128] } } + ] + } + }, + { + "name": "Config", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "vault_config_key", "docs": ["Vault config key"], "type": "pubkey" }, + { + "name": "pool_creator_authority", + "docs": [ + "Only pool_creator_authority can use the current config to initialize new pool. When it's Pubkey::default, it's a public config." + ], + "type": "pubkey" + }, + { "name": "pool_fees", "docs": ["Pool fee"], "type": { "defined": { "name": "PoolFeesConfig" } } }, + { "name": "activation_type", "docs": ["Activation type"], "type": "u8" }, + { "name": "collect_fee_mode", "docs": ["Collect fee mode"], "type": "u8" }, + { "name": "config_type", "docs": ["Config type mode, 0 for static, 1 for dynamic"], "type": "u8" }, + { "name": "_padding_0", "docs": ["padding 0"], "type": { "array": ["u8", 5] } }, + { "name": "index", "docs": ["config index"], "type": "u64" }, + { "name": "sqrt_min_price", "docs": ["sqrt min price"], "type": "u128" }, + { "name": "sqrt_max_price", "docs": ["sqrt max price"], "type": "u128" }, + { + "name": "_padding_1", + "docs": ["Fee curve point", "Padding for further use"], + "type": { "array": ["u64", 10] } + } + ] + } + }, + { + "name": "DynamicConfigParameters", + "type": { "kind": "struct", "fields": [{ "name": "pool_creator_authority", "type": "pubkey" }] } + }, + { + "name": "DynamicFeeConfig", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "initialized", "type": "u8" }, + { "name": "padding", "type": { "array": ["u8", 7] } }, + { "name": "max_volatility_accumulator", "type": "u32" }, + { "name": "variable_fee_control", "type": "u32" }, + { "name": "bin_step", "type": "u16" }, + { "name": "filter_period", "type": "u16" }, + { "name": "decay_period", "type": "u16" }, + { "name": "reduction_factor", "type": "u16" }, + { "name": "padding_1", "type": { "array": ["u8", 8] } }, + { "name": "bin_step_u128", "type": "u128" } + ] + } + }, + { + "name": "DynamicFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "bin_step", "type": "u16" }, + { "name": "bin_step_u128", "type": "u128" }, + { "name": "filter_period", "type": "u16" }, + { "name": "decay_period", "type": "u16" }, + { "name": "reduction_factor", "type": "u16" }, + { "name": "max_volatility_accumulator", "type": "u32" }, + { "name": "variable_fee_control", "type": "u32" } + ] + } + }, + { + "name": "DynamicFeeStruct", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "initialized", "type": "u8" }, + { "name": "padding", "type": { "array": ["u8", 7] } }, + { "name": "max_volatility_accumulator", "type": "u32" }, + { "name": "variable_fee_control", "type": "u32" }, + { "name": "bin_step", "type": "u16" }, + { "name": "filter_period", "type": "u16" }, + { "name": "decay_period", "type": "u16" }, + { "name": "reduction_factor", "type": "u16" }, + { "name": "last_update_timestamp", "type": "u64" }, + { "name": "bin_step_u128", "type": "u128" }, + { "name": "sqrt_price_reference", "type": "u128" }, + { "name": "volatility_accumulator", "type": "u128" }, + { "name": "volatility_reference", "type": "u128" } + ] + } + }, + { + "name": "EvtAddLiquidity", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "params", "type": { "defined": { "name": "AddLiquidityParameters" } } }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" }, + { "name": "total_amount_a", "type": "u64" }, + { "name": "total_amount_b", "type": "u64" } + ] + } + }, + { + "name": "EvtClaimPartnerFee", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" } + ] + } + }, + { + "name": "EvtClaimPositionFee", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "fee_a_claimed", "type": "u64" }, + { "name": "fee_b_claimed", "type": "u64" } + ] + } + }, + { + "name": "EvtClaimProtocolFee", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" } + ] + } + }, + { + "name": "EvtClaimReward", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "mint_reward", "type": "pubkey" }, + { "name": "reward_index", "type": "u8" }, + { "name": "total_reward", "type": "u64" } + ] + } + }, + { + "name": "EvtCloseClaimFeeOperator", + "docs": ["Close claim fee operator"], + "type": { + "kind": "struct", + "fields": [ + { "name": "claim_fee_operator", "type": "pubkey" }, + { "name": "operator", "type": "pubkey" } + ] + } + }, + { + "name": "EvtCloseConfig", + "docs": ["Close config"], + "type": { + "kind": "struct", + "fields": [ + { "name": "config", "docs": ["Config pubkey"], "type": "pubkey" }, + { "name": "admin", "docs": ["admin pk"], "type": "pubkey" } + ] + } + }, + { + "name": "EvtClosePosition", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "position_nft_mint", "type": "pubkey" } + ] + } + }, + { + "name": "EvtCreateClaimFeeOperator", + "docs": ["Create claim fee operator"], + "type": { "kind": "struct", "fields": [{ "name": "operator", "type": "pubkey" }] } + }, + { + "name": "EvtCreateConfig", + "docs": ["Create static config"], + "type": { + "kind": "struct", + "fields": [ + { "name": "pool_fees", "type": { "defined": { "name": "PoolFeeParameters" } } }, + { "name": "vault_config_key", "type": "pubkey" }, + { "name": "pool_creator_authority", "type": "pubkey" }, + { "name": "activation_type", "type": "u8" }, + { "name": "sqrt_min_price", "type": "u128" }, + { "name": "sqrt_max_price", "type": "u128" }, + { "name": "collect_fee_mode", "type": "u8" }, + { "name": "index", "type": "u64" }, + { "name": "config", "type": "pubkey" } + ] + } + }, + { + "name": "EvtCreateDynamicConfig", + "docs": ["Create dynamic config"], + "type": { + "kind": "struct", + "fields": [ + { "name": "config", "type": "pubkey" }, + { "name": "pool_creator_authority", "type": "pubkey" }, + { "name": "index", "type": "u64" } + ] + } + }, + { + "name": "EvtCreatePosition", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "position_nft_mint", "type": "pubkey" } + ] + } + }, + { + "name": "EvtCreateTokenBadge", + "docs": ["Create token badge"], + "type": { "kind": "struct", "fields": [{ "name": "token_mint", "type": "pubkey" }] } + }, + { + "name": "EvtFundReward", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "funder", "type": "pubkey" }, + { "name": "mint_reward", "type": "pubkey" }, + { "name": "reward_index", "type": "u8" }, + { "name": "amount", "type": "u64" }, + { "name": "transfer_fee_excluded_amount_in", "type": "u64" }, + { "name": "reward_duration_end", "type": "u64" }, + { "name": "pre_reward_rate", "type": "u128" }, + { "name": "post_reward_rate", "type": "u128" } + ] + } + }, + { + "name": "EvtInitializePool", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "token_a_mint", "type": "pubkey" }, + { "name": "token_b_mint", "type": "pubkey" }, + { "name": "creator", "type": "pubkey" }, + { "name": "payer", "type": "pubkey" }, + { "name": "alpha_vault", "type": "pubkey" }, + { "name": "pool_fees", "type": { "defined": { "name": "PoolFeeParameters" } } }, + { "name": "sqrt_min_price", "type": "u128" }, + { "name": "sqrt_max_price", "type": "u128" }, + { "name": "activation_type", "type": "u8" }, + { "name": "collect_fee_mode", "type": "u8" }, + { "name": "liquidity", "type": "u128" }, + { "name": "sqrt_price", "type": "u128" }, + { "name": "activation_point", "type": "u64" }, + { "name": "token_a_flag", "type": "u8" }, + { "name": "token_b_flag", "type": "u8" }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" }, + { "name": "total_amount_a", "type": "u64" }, + { "name": "total_amount_b", "type": "u64" }, + { "name": "pool_type", "type": "u8" } + ] + } + }, + { + "name": "EvtInitializeReward", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "reward_mint", "type": "pubkey" }, + { "name": "funder", "type": "pubkey" }, + { "name": "creator", "type": "pubkey" }, + { "name": "reward_index", "type": "u8" }, + { "name": "reward_duration", "type": "u64" } + ] + } + }, + { + "name": "EvtLiquidityChange", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" }, + { "name": "transfer_fee_included_token_a_amount", "type": "u64" }, + { "name": "transfer_fee_included_token_b_amount", "type": "u64" }, + { "name": "reserve_a_amount", "type": "u64" }, + { "name": "reserve_b_amount", "type": "u64" }, + { "name": "liquidity_delta", "type": "u128" }, + { "name": "token_a_amount_threshold", "type": "u64" }, + { "name": "token_b_amount_threshold", "type": "u64" }, + { "name": "change_type", "type": "u8" } + ] + } + }, + { + "name": "EvtLockPosition", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "vesting", "type": "pubkey" }, + { "name": "cliff_point", "type": "u64" }, + { "name": "period_frequency", "type": "u64" }, + { "name": "cliff_unlock_liquidity", "type": "u128" }, + { "name": "liquidity_per_period", "type": "u128" }, + { "name": "number_of_period", "type": "u16" } + ] + } + }, + { + "name": "EvtPermanentLockPosition", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "lock_liquidity_amount", "type": "u128" }, + { "name": "total_permanent_locked_liquidity", "type": "u128" } + ] + } + }, + { + "name": "EvtRemoveLiquidity", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "position", "type": "pubkey" }, + { "name": "owner", "type": "pubkey" }, + { "name": "params", "type": { "defined": { "name": "RemoveLiquidityParameters" } } }, + { "name": "token_a_amount", "type": "u64" }, + { "name": "token_b_amount", "type": "u64" } + ] + } + }, + { + "name": "EvtSetPoolStatus", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "status", "type": "u8" } + ] + } + }, + { + "name": "EvtSplitPosition2", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "first_owner", "type": "pubkey" }, + { "name": "second_owner", "type": "pubkey" }, + { "name": "first_position", "type": "pubkey" }, + { "name": "second_position", "type": "pubkey" }, + { "name": "current_sqrt_price", "type": "u128" }, + { "name": "amount_splits", "type": { "defined": { "name": "SplitAmountInfo" } } }, + { "name": "first_position_info", "type": { "defined": { "name": "SplitPositionInfo" } } }, + { "name": "second_position_info", "type": { "defined": { "name": "SplitPositionInfo" } } }, + { + "name": "split_position_parameters", + "type": { "defined": { "name": "SplitPositionParameters2" } } + } + ] + } + }, + { + "name": "EvtSwap", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "trade_direction", "type": "u8" }, + { "name": "has_referral", "type": "bool" }, + { "name": "params", "type": { "defined": { "name": "SwapParameters" } } }, + { "name": "swap_result", "type": { "defined": { "name": "SwapResult" } } }, + { "name": "actual_amount_in", "type": "u64" }, + { "name": "current_timestamp", "type": "u64" } + ] + } + }, + { + "name": "EvtSwap2", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "trade_direction", "type": "u8" }, + { "name": "collect_fee_mode", "type": "u8" }, + { "name": "has_referral", "type": "bool" }, + { "name": "params", "type": { "defined": { "name": "SwapParameters2" } } }, + { "name": "swap_result", "type": { "defined": { "name": "SwapResult2" } } }, + { "name": "included_transfer_fee_amount_in", "type": "u64" }, + { "name": "included_transfer_fee_amount_out", "type": "u64" }, + { "name": "excluded_transfer_fee_amount_out", "type": "u64" }, + { "name": "current_timestamp", "type": "u64" }, + { "name": "reserve_a_amount", "type": "u64" }, + { "name": "reserve_b_amount", "type": "u64" } + ] + } + }, + { + "name": "EvtUpdateRewardDuration", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "reward_index", "type": "u8" }, + { "name": "old_reward_duration", "type": "u64" }, + { "name": "new_reward_duration", "type": "u64" } + ] + } + }, + { + "name": "EvtUpdateRewardFunder", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "reward_index", "type": "u8" }, + { "name": "old_funder", "type": "pubkey" }, + { "name": "new_funder", "type": "pubkey" } + ] + } + }, + { + "name": "EvtWithdrawIneligibleReward", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "reward_mint", "type": "pubkey" }, + { "name": "amount", "type": "u64" } + ] + } + }, + { + "name": "InitializeCustomizablePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "docs": ["pool fees"], + "type": { "defined": { "name": "PoolFeeParameters" } } + }, + { "name": "sqrt_min_price", "docs": ["sqrt min price"], "type": "u128" }, + { "name": "sqrt_max_price", "docs": ["sqrt max price"], "type": "u128" }, + { "name": "has_alpha_vault", "docs": ["has alpha vault"], "type": "bool" }, + { "name": "liquidity", "docs": ["initialize liquidity"], "type": "u128" }, + { + "name": "sqrt_price", + "docs": ["The init price of the pool as a sqrt(token_b/token_a) Q64.64 value"], + "type": "u128" + }, + { "name": "activation_type", "docs": ["activation type"], "type": "u8" }, + { "name": "collect_fee_mode", "docs": ["collect fee mode"], "type": "u8" }, + { "name": "activation_point", "docs": ["activation point"], "type": { "option": "u64" } } + ] + } + }, + { + "name": "InitializePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "liquidity", "docs": ["initialize liquidity"], "type": "u128" }, + { + "name": "sqrt_price", + "docs": ["The init price of the pool as a sqrt(token_b/token_a) Q64.64 value"], + "type": "u128" + }, + { "name": "activation_point", "docs": ["activation point"], "type": { "option": "u64" } } + ] + } + }, + { + "name": "Pool", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "pool_fees", "docs": ["Pool fee"], "type": { "defined": { "name": "PoolFeesStruct" } } }, + { "name": "token_a_mint", "docs": ["token a mint"], "type": "pubkey" }, + { "name": "token_b_mint", "docs": ["token b mint"], "type": "pubkey" }, + { "name": "token_a_vault", "docs": ["token a vault"], "type": "pubkey" }, + { "name": "token_b_vault", "docs": ["token b vault"], "type": "pubkey" }, + { + "name": "whitelisted_vault", + "docs": ["Whitelisted vault to be able to buy pool before activation_point"], + "type": "pubkey" + }, + { "name": "partner", "docs": ["partner"], "type": "pubkey" }, + { "name": "liquidity", "docs": ["liquidity share"], "type": "u128" }, + { + "name": "_padding", + "docs": ["padding, previous reserve amount, be careful to use that field"], + "type": "u128" + }, + { "name": "protocol_a_fee", "docs": ["protocol a fee"], "type": "u64" }, + { "name": "protocol_b_fee", "docs": ["protocol b fee"], "type": "u64" }, + { "name": "partner_a_fee", "docs": ["partner a fee"], "type": "u64" }, + { "name": "partner_b_fee", "docs": ["partner b fee"], "type": "u64" }, + { "name": "sqrt_min_price", "docs": ["min price"], "type": "u128" }, + { "name": "sqrt_max_price", "docs": ["max price"], "type": "u128" }, + { "name": "sqrt_price", "docs": ["current price"], "type": "u128" }, + { + "name": "activation_point", + "docs": ["Activation point, can be slot or timestamp"], + "type": "u64" + }, + { + "name": "activation_type", + "docs": ["Activation type, 0 means by slot, 1 means by timestamp"], + "type": "u8" + }, + { "name": "pool_status", "docs": ["pool status, 0: enable, 1 disable"], "type": "u8" }, + { "name": "token_a_flag", "docs": ["token a flag"], "type": "u8" }, + { "name": "token_b_flag", "docs": ["token b flag"], "type": "u8" }, + { + "name": "collect_fee_mode", + "docs": [ + "0 is collect fee in both token, 1 only collect fee in token a, 2 only collect fee in token b" + ], + "type": "u8" + }, + { "name": "pool_type", "docs": ["pool type"], "type": "u8" }, + { + "name": "version", + "docs": ["pool version, 0: max_fee is still capped at 50%, 1: max_fee is capped at 99%"], + "type": "u8" + }, + { "name": "_padding_0", "docs": ["padding"], "type": "u8" }, + { "name": "fee_a_per_liquidity", "docs": ["cumulative"], "type": { "array": ["u8", 32] } }, + { "name": "fee_b_per_liquidity", "docs": ["cumulative"], "type": { "array": ["u8", 32] } }, + { "name": "permanent_lock_liquidity", "type": "u128" }, + { "name": "metrics", "docs": ["metrics"], "type": { "defined": { "name": "PoolMetrics" } } }, + { "name": "creator", "docs": ["pool creator"], "type": "pubkey" }, + { "name": "_padding_1", "docs": ["Padding for further use"], "type": { "array": ["u64", 6] } }, + { + "name": "reward_infos", + "docs": ["Farming reward information"], + "type": { "array": [{ "defined": { "name": "RewardInfo" } }, 2] } + } + ] + } + }, + { + "name": "PoolFeeParameters", + "docs": ["Information regarding fee charges"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "docs": ["Base fee"], + "type": { "defined": { "name": "BaseFeeParameters" } } + }, + { "name": "padding", "docs": ["padding"], "type": { "array": ["u8", 3] } }, + { + "name": "dynamic_fee", + "docs": ["dynamic fee"], + "type": { "option": { "defined": { "name": "DynamicFeeParameters" } } } + } + ] + } + }, + { + "name": "PoolFeesConfig", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "base_fee", "type": { "defined": { "name": "BaseFeeConfig" } } }, + { "name": "dynamic_fee", "type": { "defined": { "name": "DynamicFeeConfig" } } }, + { "name": "protocol_fee_percent", "type": "u8" }, + { "name": "partner_fee_percent", "type": "u8" }, + { "name": "referral_fee_percent", "type": "u8" }, + { "name": "padding_0", "type": { "array": ["u8", 5] } }, + { "name": "padding_1", "type": { "array": ["u64", 5] } } + ] + } + }, + { + "name": "PoolFeesStruct", + "docs": [ + "Information regarding fee charges", + "trading_fee = amount * trade_fee_numerator / denominator", + "protocol_fee = trading_fee * protocol_fee_percentage / 100", + "referral_fee = protocol_fee * referral_percentage / 100", + "partner_fee = (protocol_fee - referral_fee) * partner_fee_percentage / denominator" + ], + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "docs": [ + "Trade fees are extra token amounts that are held inside the token", + "accounts during a trade, making the value of liquidity tokens rise.", + "Trade fee numerator" + ], + "type": { "defined": { "name": "BaseFeeStruct" } } + }, + { + "name": "protocol_fee_percent", + "docs": [ + "Protocol trading fees are extra token amounts that are held inside the token", + "accounts during a trade, with the equivalent in pool tokens minted to", + "the protocol of the program.", + "Protocol trade fee numerator" + ], + "type": "u8" + }, + { "name": "partner_fee_percent", "docs": ["partner fee"], "type": "u8" }, + { "name": "referral_fee_percent", "docs": ["referral fee"], "type": "u8" }, + { "name": "padding_0", "docs": ["padding"], "type": { "array": ["u8", 5] } }, + { + "name": "dynamic_fee", + "docs": ["dynamic fee"], + "type": { "defined": { "name": "DynamicFeeStruct" } } + }, + { "name": "padding_1", "docs": ["padding"], "type": { "array": ["u64", 2] } } + ] + } + }, + { + "name": "PoolMetrics", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "total_lp_a_fee", "type": "u128" }, + { "name": "total_lp_b_fee", "type": "u128" }, + { "name": "total_protocol_a_fee", "type": "u64" }, + { "name": "total_protocol_b_fee", "type": "u64" }, + { "name": "total_partner_a_fee", "type": "u64" }, + { "name": "total_partner_b_fee", "type": "u64" }, + { "name": "total_position", "type": "u64" }, + { "name": "padding", "type": "u64" } + ] + } + }, + { + "name": "Position", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "pool", "type": "pubkey" }, + { "name": "nft_mint", "docs": ["nft mint"], "type": "pubkey" }, + { + "name": "fee_a_per_token_checkpoint", + "docs": ["fee a checkpoint"], + "type": { "array": ["u8", 32] } + }, + { + "name": "fee_b_per_token_checkpoint", + "docs": ["fee b checkpoint"], + "type": { "array": ["u8", 32] } + }, + { "name": "fee_a_pending", "docs": ["fee a pending"], "type": "u64" }, + { "name": "fee_b_pending", "docs": ["fee b pending"], "type": "u64" }, + { "name": "unlocked_liquidity", "docs": ["unlock liquidity"], "type": "u128" }, + { "name": "vested_liquidity", "docs": ["vesting liquidity"], "type": "u128" }, + { "name": "permanent_locked_liquidity", "docs": ["permanent locked liquidity"], "type": "u128" }, + { "name": "metrics", "docs": ["metrics"], "type": { "defined": { "name": "PositionMetrics" } } }, + { + "name": "reward_infos", + "docs": ["Farming reward information"], + "type": { "array": [{ "defined": { "name": "UserRewardInfo" } }, 2] } + }, + { "name": "padding", "docs": ["padding for future usage"], "type": { "array": ["u128", 6] } } + ] + } + }, + { + "name": "PositionMetrics", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "total_claimed_a_fee", "type": "u64" }, + { "name": "total_claimed_b_fee", "type": "u64" } + ] + } + }, + { + "name": "RemoveLiquidityParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "liquidity_delta", "docs": ["delta liquidity"], "type": "u128" }, + { "name": "token_a_amount_threshold", "docs": ["minimum token a amount"], "type": "u64" }, + { "name": "token_b_amount_threshold", "docs": ["minimum token b amount"], "type": "u64" } + ] + } + }, + { + "name": "RewardInfo", + "docs": ["Stores the state relevant for tracking liquidity mining rewards"], + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "initialized", "docs": ["Indicates if the reward has been initialized"], "type": "u8" }, + { "name": "reward_token_flag", "docs": ["reward token flag"], "type": "u8" }, + { "name": "_padding_0", "docs": ["padding"], "type": { "array": ["u8", 6] } }, + { + "name": "_padding_1", + "docs": ["Padding to ensure `reward_rate: u128` is 16-byte aligned"], + "type": { "array": ["u8", 8] } + }, + { "name": "mint", "docs": ["Reward token mint."], "type": "pubkey" }, + { "name": "vault", "docs": ["Reward vault token account."], "type": "pubkey" }, + { "name": "funder", "docs": ["Authority account that allows to fund rewards"], "type": "pubkey" }, + { "name": "reward_duration", "docs": ["reward duration"], "type": "u64" }, + { "name": "reward_duration_end", "docs": ["reward duration end"], "type": "u64" }, + { "name": "reward_rate", "docs": ["reward rate"], "type": "u128" }, + { + "name": "reward_per_token_stored", + "docs": ["Reward per token stored"], + "type": { "array": ["u8", 32] } + }, + { + "name": "last_update_time", + "docs": ["The last time reward states were updated."], + "type": "u64" + }, + { + "name": "cumulative_seconds_with_empty_liquidity_reward", + "docs": [ + "Accumulated seconds when the farm distributed rewards but the bin was empty.", + "These rewards will be carried over to the next reward time window." + ], + "type": "u64" + } + ] + } + }, + { + "name": "SplitAmountInfo", + "type": { + "kind": "struct", + "fields": [ + { "name": "permanent_locked_liquidity", "type": "u128" }, + { "name": "unlocked_liquidity", "type": "u128" }, + { "name": "fee_a", "type": "u64" }, + { "name": "fee_b", "type": "u64" }, + { "name": "reward_0", "type": "u64" }, + { "name": "reward_1", "type": "u64" } + ] + } + }, + { + "name": "SplitPositionInfo", + "type": { + "kind": "struct", + "fields": [ + { "name": "liquidity", "type": "u128" }, + { "name": "fee_a", "type": "u64" }, + { "name": "fee_b", "type": "u64" }, + { "name": "reward_0", "type": "u64" }, + { "name": "reward_1", "type": "u64" } + ] + } + }, + { + "name": "SplitPositionParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "unlocked_liquidity_percentage", + "docs": ["Percentage of unlocked liquidity to split to the second position"], + "type": "u8" + }, + { + "name": "permanent_locked_liquidity_percentage", + "docs": ["Percentage of permanent locked liquidity to split to the second position"], + "type": "u8" + }, + { + "name": "fee_a_percentage", + "docs": ["Percentage of fee A pending to split to the second position"], + "type": "u8" + }, + { + "name": "fee_b_percentage", + "docs": ["Percentage of fee B pending to split to the second position"], + "type": "u8" + }, + { + "name": "reward_0_percentage", + "docs": ["Percentage of reward 0 pending to split to the second position"], + "type": "u8" + }, + { + "name": "reward_1_percentage", + "docs": ["Percentage of reward 1 pending to split to the second position"], + "type": "u8" + }, + { "name": "padding", "docs": ["padding for future"], "type": { "array": ["u8", 16] } } + ] + } + }, + { + "name": "SplitPositionParameters2", + "type": { + "kind": "struct", + "fields": [ + { "name": "unlocked_liquidity_numerator", "type": "u32" }, + { "name": "permanent_locked_liquidity_numerator", "type": "u32" }, + { "name": "fee_a_numerator", "type": "u32" }, + { "name": "fee_b_numerator", "type": "u32" }, + { "name": "reward_0_numerator", "type": "u32" }, + { "name": "reward_1_numerator", "type": "u32" } + ] + } + }, + { + "name": "StaticConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "pool_fees", "type": { "defined": { "name": "PoolFeeParameters" } } }, + { "name": "sqrt_min_price", "type": "u128" }, + { "name": "sqrt_max_price", "type": "u128" }, + { "name": "vault_config_key", "type": "pubkey" }, + { "name": "pool_creator_authority", "type": "pubkey" }, + { "name": "activation_type", "type": "u8" }, + { "name": "collect_fee_mode", "type": "u8" } + ] + } + }, + { + "name": "SwapParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "amount_in", "type": "u64" }, + { "name": "minimum_amount_out", "type": "u64" } + ] + } + }, + { + "name": "SwapParameters2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_0", + "docs": [ + "When it's exact in, partial fill, this will be amount_in. When it's exact out, this will be amount_out" + ], + "type": "u64" + }, + { + "name": "amount_1", + "docs": [ + "When it's exact in, partial fill, this will be minimum_amount_out. When it's exact out, this will be maximum_amount_in" + ], + "type": "u64" + }, + { "name": "swap_mode", "docs": ["Swap mode, refer [SwapMode]"], "type": "u8" } + ] + } + }, + { + "name": "SwapResult", + "docs": ["Encodes all results of swapping"], + "type": { + "kind": "struct", + "fields": [ + { "name": "output_amount", "type": "u64" }, + { "name": "next_sqrt_price", "type": "u128" }, + { "name": "lp_fee", "type": "u64" }, + { "name": "protocol_fee", "type": "u64" }, + { "name": "partner_fee", "type": "u64" }, + { "name": "referral_fee", "type": "u64" } + ] + } + }, + { + "name": "SwapResult2", + "type": { + "kind": "struct", + "fields": [ + { "name": "included_fee_input_amount", "type": "u64" }, + { "name": "excluded_fee_input_amount", "type": "u64" }, + { "name": "amount_left", "type": "u64" }, + { "name": "output_amount", "type": "u64" }, + { "name": "next_sqrt_price", "type": "u128" }, + { "name": "trading_fee", "type": "u64" }, + { "name": "protocol_fee", "type": "u64" }, + { "name": "partner_fee", "type": "u64" }, + { "name": "referral_fee", "type": "u64" } + ] + } + }, + { + "name": "TokenBadge", + "docs": ["Parameter that set by the protocol"], + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "token_mint", "docs": ["token mint"], "type": "pubkey" }, + { "name": "_padding", "docs": ["Reserve"], "type": { "array": ["u8", 128] } } + ] + } + }, + { + "name": "UserRewardInfo", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "reward_per_token_checkpoint", + "docs": ["The latest update reward checkpoint"], + "type": { "array": ["u8", 32] } + }, + { "name": "reward_pendings", "docs": ["Current pending rewards"], "type": "u64" }, + { "name": "total_claimed_rewards", "docs": ["Total claimed rewards"], "type": "u64" } + ] + } + }, + { + "name": "Vesting", + "serialization": "bytemuck", + "repr": { "kind": "c" }, + "type": { + "kind": "struct", + "fields": [ + { "name": "position", "type": "pubkey" }, + { "name": "cliff_point", "type": "u64" }, + { "name": "period_frequency", "type": "u64" }, + { "name": "cliff_unlock_liquidity", "type": "u128" }, + { "name": "liquidity_per_period", "type": "u128" }, + { "name": "total_released_liquidity", "type": "u128" }, + { "name": "number_of_period", "type": "u16" }, + { "name": "padding", "type": { "array": ["u8", 14] } }, + { "name": "padding2", "type": { "array": ["u128", 4] } } + ] + } + }, + { + "name": "VestingParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "cliff_point", "type": { "option": "u64" } }, + { "name": "period_frequency", "type": "u64" }, + { "name": "cliff_unlock_liquidity", "type": "u128" }, + { "name": "liquidity_per_period", "type": "u128" }, + { "name": "number_of_period", "type": "u16" } + ] + } + } + ] +} diff --git a/idl/meteora_dynamic_bonding_curve.json b/idl/meteora_dynamic_bonding_curve.json new file mode 100644 index 0000000..921fed7 --- /dev/null +++ b/idl/meteora_dynamic_bonding_curve.json @@ -0,0 +1,6459 @@ +{ + "address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN", + "metadata": { + "name": "dynamic_bonding_curve", + "version": "0.1.6", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "claim_creator_trading_fee", + "discriminator": [ + 82, + 220, + 250, + 189, + 3, + 85, + 107, + 45 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The treasury token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The treasury token b account" + ], + "writable": true + }, + { + "name": "base_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of token b" + ] + }, + { + "name": "creator", + "signer": true, + "relations": [ + "pool" + ] + }, + { + "name": "token_base_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "max_base_amount", + "type": "u64" + }, + { + "name": "max_quote_amount", + "type": "u64" + } + ] + }, + { + "name": "claim_protocol_fee", + "discriminator": [ + 165, + 228, + 133, + 48, + 99, + 249, + 255, + 33 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "pool" + ] + }, + { + "name": "pool", + "writable": true + }, + { + "name": "base_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "config" + ] + }, + { + "name": "token_base_account", + "docs": [ + "The treasury token a account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, + 9, + 89, + 123, + 106, + 114, + 131, + 251, + 50, + 173, + 254, + 250, + 10, + 80, + 160, + 84, + 143, + 100, + 81, + 249, + 134, + 112, + 30, + 213, + 50, + 166, + 239, + 78, + 53, + 175, + 188, + 85 + ] + }, + { + "kind": "account", + "path": "token_base_program" + }, + { + "kind": "account", + "path": "base_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": "token_quote_account", + "docs": [ + "The treasury token b account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, + 9, + 89, + 123, + 106, + 114, + 131, + 251, + 50, + 173, + 254, + 250, + 10, + 80, + 160, + 84, + 143, + 100, + 81, + 249, + 134, + 112, + 30, + 213, + 50, + 166, + 239, + 78, + 53, + 175, + 188, + 85 + ] + }, + { + "kind": "account", + "path": "token_quote_program" + }, + { + "kind": "account", + "path": "quote_mint" + } + ], + "program": { + "kind": "const", + "value": [ + 140, + 151, + 37, + 143, + 78, + 36, + 137, + 241, + 187, + 61, + 16, + 41, + 20, + 142, + 13, + 131, + 11, + 90, + 19, + 153, + 218, + 255, + 16, + 132, + 4, + 142, + 123, + 216, + 219, + 233, + 248, + 89 + ] + } + } + }, + { + "name": "claim_fee_operator", + "docs": [ + "Claim fee operator" + ] + }, + { + "name": "operator", + "docs": [ + "Operator" + ], + "signer": true, + "relations": [ + "claim_fee_operator" + ] + }, + { + "name": "token_base_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "claim_trading_fee", + "discriminator": [ + 8, + 236, + 89, + 49, + 152, + 125, + 177, + 81 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "pool" + ] + }, + { + "name": "pool", + "writable": true + }, + { + "name": "token_a_account", + "docs": [ + "The treasury token a account" + ], + "writable": true + }, + { + "name": "token_b_account", + "docs": [ + "The treasury token b account" + ], + "writable": true + }, + { + "name": "base_vault", + "docs": [ + "The vault token account for input token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of token a" + ], + "relations": [ + "pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of token b" + ], + "relations": [ + "config" + ] + }, + { + "name": "fee_claimer", + "signer": true, + "relations": [ + "config" + ] + }, + { + "name": "token_base_program", + "docs": [ + "Token a program" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "max_amount_a", + "type": "u64" + }, + { + "name": "max_amount_b", + "type": "u64" + } + ] + }, + { + "name": "close_claim_fee_operator", + "discriminator": [ + 38, + 134, + 82, + 216, + 95, + 124, + 17, + 99 + ], + "accounts": [ + { + "name": "claim_fee_operator", + "writable": true + }, + { + "name": "rent_receiver", + "writable": true + }, + { + "name": "admin", + "signer": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "create_claim_fee_operator", + "docs": [ + "ADMIN FUNCTIONS_ ///" + ], + "discriminator": [ + 169, + 62, + 207, + 107, + 58, + 187, + 162, + 109 + ], + "accounts": [ + { + "name": "claim_fee_operator", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 99, + 102, + 95, + 111, + 112, + 101, + 114, + 97, + 116, + 111, + 114 + ] + }, + { + "kind": "account", + "path": "operator" + } + ] + } + }, + { + "name": "operator" + }, + { + "name": "admin", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "create_config", + "discriminator": [ + 201, + 207, + 243, + 114, + 75, + 111, + 47, + 189 + ], + "accounts": [ + { + "name": "config", + "writable": true, + "signer": true + }, + { + "name": "fee_claimer" + }, + { + "name": "leftover_receiver" + }, + { + "name": "quote_mint", + "docs": [ + "quote mint" + ] + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "config_parameters", + "type": { + "defined": { + "name": "ConfigParameters" + } + } + } + ] + }, + { + "name": "create_locker", + "docs": [ + "PERMISSIONLESS FUNCTIONS ///", + "create locker" + ], + "discriminator": [ + 167, + 90, + 137, + 154, + 75, + 47, + 17, + 84 + ], + "accounts": [ + { + "name": "virtual_pool", + "docs": [ + "Virtual pool" + ], + "writable": true + }, + { + "name": "config", + "docs": [ + "Config" + ], + "relations": [ + "virtual_pool" + ] + }, + { + "name": "pool_authority", + "writable": true, + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "base_vault", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "base_mint", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "base", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 98, + 97, + 115, + 101, + 95, + 108, + 111, + 99, + 107, + 101, + 114 + ] + }, + { + "kind": "account", + "path": "virtual_pool" + } + ] + } + }, + { + "name": "creator", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "escrow", + "writable": true + }, + { + "name": "escrow_token", + "writable": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "token_program" + }, + { + "name": "locker_program", + "address": "LocpQgucEQHbqNABEYvBvwoxCPsSbG91A1QaQhQQqjn" + }, + { + "name": "locker_event_authority" + }, + { + "name": "system_program", + "docs": [ + "System program." + ], + "address": "11111111111111111111111111111111" + } + ], + "args": [] + }, + { + "name": "create_partner_metadata", + "docs": [ + "PARTNER FUNCTIONS ////" + ], + "discriminator": [ + 192, + 168, + 234, + 191, + 188, + 226, + 227, + 255 + ], + "accounts": [ + { + "name": "partner_metadata", + "docs": [ + "Partner metadata" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 112, + 97, + 114, + 116, + 110, + 101, + 114, + 95, + 109, + 101, + 116, + 97, + 100, + 97, + 116, + 97 + ] + }, + { + "kind": "account", + "path": "fee_claimer" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Payer of the partner metadata." + ], + "writable": true, + "signer": true + }, + { + "name": "fee_claimer", + "docs": [ + "Fee claimer for partner" + ], + "signer": true + }, + { + "name": "system_program", + "docs": [ + "System program." + ], + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "metadata", + "type": { + "defined": { + "name": "CreatePartnerMetadataParameters" + } + } + } + ] + }, + { + "name": "create_virtual_pool_metadata", + "discriminator": [ + 45, + 97, + 187, + 103, + 254, + 109, + 124, + 134 + ], + "accounts": [ + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "virtual_pool_metadata", + "docs": [ + "Virtual pool metadata" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 118, + 105, + 114, + 116, + 117, + 97, + 108, + 95, + 112, + 111, + 111, + 108, + 95, + 109, + 101, + 116, + 97, + 100, + 97, + 116, + 97 + ] + }, + { + "kind": "account", + "path": "virtual_pool" + } + ] + } + }, + { + "name": "creator", + "signer": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "payer", + "docs": [ + "Payer of the virtual pool metadata." + ], + "writable": true, + "signer": true + }, + { + "name": "system_program", + "docs": [ + "System program." + ], + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "metadata", + "type": { + "defined": { + "name": "CreateVirtualPoolMetadataParameters" + } + } + } + ] + }, + { + "name": "creator_withdraw_surplus", + "discriminator": [ + 165, + 3, + 137, + 7, + 28, + 134, + 76, + 80 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "token_quote_account", + "docs": [ + "The receiver token account" + ], + "writable": true + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of quote token" + ], + "relations": [ + "config" + ] + }, + { + "name": "creator", + "signer": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "initialize_virtual_pool_with_spl_token", + "docs": [ + "POOL CREATOR FUNCTIONS ////" + ], + "discriminator": [ + 140, + 85, + 215, + 176, + 102, + 54, + 104, + 79 + ], + "accounts": [ + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "creator", + "signer": true + }, + { + "name": "base_mint", + "writable": true, + "signer": true + }, + { + "name": "quote_mint", + "relations": [ + "config" + ] + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "base_vault", + "docs": [ + "Token a vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "base_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "quote_vault", + "docs": [ + "Token b vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "quote_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "mint_metadata", + "writable": true + }, + { + "name": "metadata_program", + "address": "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "token_quote_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_program", + "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "InitializePoolParameters" + } + } + } + ] + }, + { + "name": "initialize_virtual_pool_with_token2022", + "discriminator": [ + 169, + 118, + 51, + 78, + 145, + 110, + 220, + 155 + ], + "accounts": [ + { + "name": "config", + "docs": [ + "Which config the pool belongs to." + ] + }, + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "creator", + "signer": true + }, + { + "name": "base_mint", + "docs": [ + "Unique token mint address, initialize in contract" + ], + "writable": true, + "signer": true + }, + { + "name": "quote_mint", + "relations": [ + "config" + ] + }, + { + "name": "pool", + "docs": [ + "Initialize an account to store the pool state" + ], + "writable": true + }, + { + "name": "base_vault", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "base_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "quote_vault", + "docs": [ + "Token quote vault for the pool" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 116, + 111, + 107, + 101, + 110, + 95, + 118, + 97, + 117, + 108, + 116 + ] + }, + { + "kind": "account", + "path": "quote_mint" + }, + { + "kind": "account", + "path": "pool" + } + ] + } + }, + { + "name": "payer", + "docs": [ + "Address paying to create the pool. Can be anyone" + ], + "writable": true, + "signer": true + }, + { + "name": "token_quote_program", + "docs": [ + "Program to create mint account and mint tokens" + ] + }, + { + "name": "token_program", + "docs": [ + "token program for base mint" + ], + "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb" + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "InitializePoolParameters" + } + } + } + ] + }, + { + "name": "migrate_meteora_damm", + "discriminator": [ + 27, + 1, + 48, + 22, + 180, + 63, + 118, + 217 + ], + "accounts": [ + { + "name": "virtual_pool", + "docs": [ + "virtual pool" + ], + "writable": true, + "relations": [ + "migration_metadata" + ] + }, + { + "name": "migration_metadata", + "writable": true + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "pool_authority", + "writable": true, + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "damm_config", + "docs": [ + "pool config" + ] + }, + { + "name": "lp_mint", + "writable": true + }, + { + "name": "token_a_mint", + "writable": true + }, + { + "name": "token_b_mint" + }, + { + "name": "a_vault", + "writable": true + }, + { + "name": "b_vault", + "writable": true + }, + { + "name": "a_token_vault", + "writable": true + }, + { + "name": "b_token_vault", + "writable": true + }, + { + "name": "a_vault_lp_mint", + "writable": true + }, + { + "name": "b_vault_lp_mint", + "writable": true + }, + { + "name": "a_vault_lp", + "writable": true + }, + { + "name": "b_vault_lp", + "writable": true + }, + { + "name": "base_vault", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_vault", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool_lp", + "writable": true + }, + { + "name": "protocol_token_a_fee", + "writable": true + }, + { + "name": "protocol_token_b_fee", + "writable": true + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "rent" + }, + { + "name": "mint_metadata", + "writable": true + }, + { + "name": "metadata_program" + }, + { + "name": "amm_program", + "address": "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB" + }, + { + "name": "vault_program" + }, + { + "name": "token_program", + "docs": [ + "token_program" + ], + "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + }, + { + "name": "associated_token_program" + }, + { + "name": "system_program", + "docs": [ + "System program." + ], + "address": "11111111111111111111111111111111" + } + ], + "args": [] + }, + { + "name": "migrate_meteora_damm_claim_lp_token", + "discriminator": [ + 139, + 133, + 2, + 30, + 91, + 145, + 127, + 154 + ], + "accounts": [ + { + "name": "virtual_pool", + "relations": [ + "migration_metadata" + ] + }, + { + "name": "migration_metadata", + "docs": [ + "migration metadata" + ], + "writable": true + }, + { + "name": "pool_authority", + "writable": true, + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "lp_mint", + "relations": [ + "migration_metadata" + ] + }, + { + "name": "source_token", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "account", + "path": "pool_authority" + }, + { + "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": "migration_metadata" + } + ], + "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": "destination_token", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "account", + "path": "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": "migration_metadata" + } + ], + "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": "owner" + }, + { + "name": "sender", + "signer": true + }, + { + "name": "token_program", + "docs": [ + "token_program" + ], + "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + } + ], + "args": [] + }, + { + "name": "migrate_meteora_damm_lock_lp_token", + "discriminator": [ + 177, + 55, + 238, + 157, + 251, + 88, + 165, + 42 + ], + "accounts": [ + { + "name": "virtual_pool", + "relations": [ + "migration_metadata" + ] + }, + { + "name": "migration_metadata", + "docs": [ + "migration_metadata" + ], + "writable": true + }, + { + "name": "pool_authority", + "writable": true, + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "pool", + "writable": true, + "relations": [ + "lock_escrow" + ] + }, + { + "name": "lp_mint", + "relations": [ + "migration_metadata" + ] + }, + { + "name": "lock_escrow", + "writable": true + }, + { + "name": "owner", + "relations": [ + "lock_escrow" + ] + }, + { + "name": "source_tokens", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "account", + "path": "pool_authority" + }, + { + "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": "migration_metadata" + } + ], + "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": "escrow_vault", + "writable": true + }, + { + "name": "amm_program", + "address": "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB" + }, + { + "name": "a_vault" + }, + { + "name": "b_vault" + }, + { + "name": "a_vault_lp" + }, + { + "name": "b_vault_lp" + }, + { + "name": "a_vault_lp_mint" + }, + { + "name": "b_vault_lp_mint" + }, + { + "name": "token_program", + "docs": [ + "token_program" + ], + "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + } + ], + "args": [] + }, + { + "name": "migration_damm_v2", + "discriminator": [ + 156, + 169, + 230, + 103, + 53, + 228, + 80, + 64 + ], + "accounts": [ + { + "name": "virtual_pool", + "docs": [ + "virtual pool" + ], + "writable": true, + "relations": [ + "migration_metadata" + ] + }, + { + "name": "migration_metadata", + "docs": [ + "migration metadata" + ] + }, + { + "name": "config", + "docs": [ + "virtual pool config key" + ], + "relations": [ + "virtual_pool" + ] + }, + { + "name": "pool_authority", + "writable": true, + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "pool", + "writable": true + }, + { + "name": "first_position_nft_mint", + "writable": true + }, + { + "name": "first_position_nft_account", + "writable": true + }, + { + "name": "first_position", + "writable": true + }, + { + "name": "second_position_nft_mint", + "writable": true, + "optional": true + }, + { + "name": "second_position_nft_account", + "writable": true, + "optional": true + }, + { + "name": "second_position", + "writable": true, + "optional": true + }, + { + "name": "damm_pool_authority" + }, + { + "name": "amm_program", + "address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG" + }, + { + "name": "base_mint", + "writable": true + }, + { + "name": "quote_mint", + "writable": true + }, + { + "name": "token_a_vault", + "writable": true + }, + { + "name": "token_b_vault", + "writable": true + }, + { + "name": "base_vault", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_vault", + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "token_base_program" + }, + { + "name": "token_quote_program" + }, + { + "name": "token_2022_program" + }, + { + "name": "damm_event_authority" + }, + { + "name": "system_program", + "docs": [ + "System program." + ], + "address": "11111111111111111111111111111111" + } + ], + "args": [] + }, + { + "name": "migration_damm_v2_create_metadata", + "discriminator": [ + 109, + 189, + 19, + 36, + 195, + 183, + 222, + 82 + ], + "accounts": [ + { + "name": "virtual_pool" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "migration_metadata", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 100, + 97, + 109, + 109, + 95, + 118, + 50 + ] + }, + { + "kind": "account", + "path": "virtual_pool" + } + ] + } + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "migration_meteora_damm_create_metadata", + "docs": [ + "migrate damm v1" + ], + "discriminator": [ + 47, + 94, + 126, + 115, + 221, + 226, + 194, + 133 + ], + "accounts": [ + { + "name": "virtual_pool" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "migration_metadata", + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 109, + 101, + 116, + 101, + 111, + 114, + 97 + ] + }, + { + "kind": "account", + "path": "virtual_pool" + } + ] + } + }, + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "system_program", + "address": "11111111111111111111111111111111" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "partner_withdraw_surplus", + "discriminator": [ + 168, + 173, + 72, + 100, + 201, + 98, + 38, + 92 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "token_quote_account", + "docs": [ + "The receiver token account" + ], + "writable": true + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of quote token" + ], + "relations": [ + "config" + ] + }, + { + "name": "fee_claimer", + "signer": true, + "relations": [ + "config" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "protocol_withdraw_surplus", + "discriminator": [ + 54, + 136, + 225, + 138, + 172, + 182, + 214, + 167 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "token_quote_account", + "docs": [ + "The treasury quote token account" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 48, + 9, + 89, + 123, + 106, + 114, + 131, + 251, + 50, + 173, + 254, + 250, + 10, + 80, + 160, + 84, + 143, + 100, + 81, + 249, + 134, + 112, + 30, + 213, + 50, + 166, + 239, + 78, + 53, + 175, + 188, + 85 + ] + }, + { + "kind": "account", + "path": "token_quote_program" + }, + { + "kind": "account", + "path": "quote_mint" + } + ], + "program": { + "kind": "const", + "value": [ + 140, + 151, + 37, + 143, + 78, + 36, + 137, + 241, + 187, + 61, + 16, + 41, + 20, + 142, + 13, + 131, + 11, + 90, + 19, + 153, + 218, + 255, + 16, + 132, + 4, + 142, + 123, + 216, + 219, + 233, + 248, + 89 + ] + } + } + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for quote token" + ], + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of token" + ], + "relations": [ + "config" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "swap", + "docs": [ + "TRADING BOTS FUNCTIONS ////" + ], + "discriminator": [ + 248, + 198, + 158, + 145, + 225, + 117, + 135, + 200 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "docs": [ + "config key" + ], + "relations": [ + "pool" + ] + }, + { + "name": "pool", + "docs": [ + "Pool account" + ], + "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": "base_vault", + "docs": [ + "The vault token account for base token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for quote token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of base token" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of quote token" + ] + }, + { + "name": "payer", + "docs": [ + "The user performing the swap" + ], + "signer": true + }, + { + "name": "token_base_program", + "docs": [ + "Token base program" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token quote program" + ] + }, + { + "name": "referral_token_account", + "docs": [ + "referral token account" + ], + "writable": true, + "optional": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "SwapParameters" + } + } + } + ] + }, + { + "name": "swap2", + "discriminator": [ + 65, + 75, + 63, + 76, + 235, + 91, + 91, + 136 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "docs": [ + "config key" + ], + "relations": [ + "pool" + ] + }, + { + "name": "pool", + "docs": [ + "Pool account" + ], + "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": "base_vault", + "docs": [ + "The vault token account for base token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for quote token" + ], + "writable": true, + "relations": [ + "pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of base token" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of quote token" + ] + }, + { + "name": "payer", + "docs": [ + "The user performing the swap" + ], + "signer": true + }, + { + "name": "token_base_program", + "docs": [ + "Token base program" + ] + }, + { + "name": "token_quote_program", + "docs": [ + "Token quote program" + ] + }, + { + "name": "referral_token_account", + "docs": [ + "referral token account" + ], + "writable": true, + "optional": true + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": { + "name": "SwapParameters2" + } + } + } + ] + }, + { + "name": "transfer_pool_creator", + "discriminator": [ + 20, + 7, + 169, + 33, + 58, + 147, + 166, + 33 + ], + "accounts": [ + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "creator", + "signer": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "new_creator" + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "withdraw_leftover", + "discriminator": [ + 20, + 198, + 202, + 237, + 235, + 243, + 183, + 66 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "token_base_account", + "docs": [ + "The receiver token account, withdraw to ATA" + ], + "writable": true, + "pda": { + "seeds": [ + { + "kind": "account", + "path": "leftover_receiver" + }, + { + "kind": "account", + "path": "token_base_program" + }, + { + "kind": "account", + "path": "base_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": "base_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "base_mint", + "docs": [ + "The mint of quote token" + ], + "relations": [ + "virtual_pool" + ] + }, + { + "name": "leftover_receiver", + "relations": [ + "config" + ] + }, + { + "name": "token_base_program", + "docs": [ + "Token base program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [] + }, + { + "name": "withdraw_migration_fee", + "docs": [ + "BOTH partner and creator FUNCTIONS ///" + ], + "discriminator": [ + 237, + 142, + 45, + 23, + 129, + 6, + 222, + 162 + ], + "accounts": [ + { + "name": "pool_authority", + "address": "FhVo3mqL8PW5pH5U2CN4XE33DokiyZnUwuGpH2hmHLuM" + }, + { + "name": "config", + "relations": [ + "virtual_pool" + ] + }, + { + "name": "virtual_pool", + "writable": true + }, + { + "name": "token_quote_account", + "docs": [ + "The receiver token account" + ], + "writable": true + }, + { + "name": "quote_vault", + "docs": [ + "The vault token account for output token" + ], + "writable": true, + "relations": [ + "virtual_pool" + ] + }, + { + "name": "quote_mint", + "docs": [ + "The mint of quote token" + ], + "relations": [ + "config" + ] + }, + { + "name": "sender", + "signer": true + }, + { + "name": "token_quote_program", + "docs": [ + "Token b program" + ] + }, + { + "name": "event_authority", + "pda": { + "seeds": [ + { + "kind": "const", + "value": [ + 95, + 95, + 101, + 118, + 101, + 110, + 116, + 95, + 97, + 117, + 116, + 104, + 111, + 114, + 105, + 116, + 121 + ] + } + ] + } + }, + { + "name": "program" + } + ], + "args": [ + { + "name": "flag", + "type": "u8" + } + ] + } + ], + "accounts": [ + { + "name": "ClaimFeeOperator", + "discriminator": [ + 166, + 48, + 134, + 86, + 34, + 200, + 188, + 150 + ] + }, + { + "name": "Config", + "discriminator": [ + 155, + 12, + 170, + 224, + 30, + 250, + 204, + 130 + ] + }, + { + "name": "LockEscrow", + "discriminator": [ + 190, + 106, + 121, + 6, + 200, + 182, + 21, + 75 + ] + }, + { + "name": "MeteoraDammMigrationMetadata", + "discriminator": [ + 17, + 155, + 141, + 215, + 207, + 4, + 133, + 156 + ] + }, + { + "name": "MeteoraDammV2Metadata", + "discriminator": [ + 104, + 221, + 219, + 203, + 10, + 142, + 250, + 163 + ] + }, + { + "name": "PartnerMetadata", + "discriminator": [ + 68, + 68, + 130, + 19, + 16, + 209, + 98, + 156 + ] + }, + { + "name": "PoolConfig", + "discriminator": [ + 26, + 108, + 14, + 123, + 116, + 230, + 129, + 43 + ] + }, + { + "name": "VirtualPool", + "discriminator": [ + 213, + 224, + 5, + 209, + 98, + 69, + 119, + 92 + ] + }, + { + "name": "VirtualPoolMetadata", + "discriminator": [ + 217, + 37, + 82, + 250, + 43, + 47, + 228, + 254 + ] + } + ], + "events": [ + { + "name": "EvtClaimCreatorTradingFee", + "discriminator": [ + 154, + 228, + 215, + 202, + 133, + 155, + 214, + 138 + ] + }, + { + "name": "EvtClaimProtocolFee", + "discriminator": [ + 186, + 244, + 75, + 251, + 188, + 13, + 25, + 33 + ] + }, + { + "name": "EvtClaimTradingFee", + "discriminator": [ + 26, + 83, + 117, + 240, + 92, + 202, + 112, + 254 + ] + }, + { + "name": "EvtCloseClaimFeeOperator", + "discriminator": [ + 111, + 39, + 37, + 55, + 110, + 216, + 194, + 23 + ] + }, + { + "name": "EvtCreateClaimFeeOperator", + "discriminator": [ + 21, + 6, + 153, + 120, + 68, + 116, + 28, + 177 + ] + }, + { + "name": "EvtCreateConfig", + "discriminator": [ + 131, + 207, + 180, + 174, + 180, + 73, + 165, + 54 + ] + }, + { + "name": "EvtCreateConfigV2", + "discriminator": [ + 163, + 74, + 66, + 187, + 119, + 195, + 26, + 144 + ] + }, + { + "name": "EvtCreateDammV2MigrationMetadata", + "discriminator": [ + 103, + 111, + 132, + 168, + 140, + 253, + 150, + 114 + ] + }, + { + "name": "EvtCreateMeteoraMigrationMetadata", + "discriminator": [ + 99, + 167, + 133, + 63, + 214, + 143, + 175, + 139 + ] + }, + { + "name": "EvtCreatorWithdrawSurplus", + "discriminator": [ + 152, + 73, + 21, + 15, + 66, + 87, + 53, + 157 + ] + }, + { + "name": "EvtCurveComplete", + "discriminator": [ + 229, + 231, + 86, + 84, + 156, + 134, + 75, + 24 + ] + }, + { + "name": "EvtInitializePool", + "discriminator": [ + 228, + 50, + 246, + 85, + 203, + 66, + 134, + 37 + ] + }, + { + "name": "EvtPartnerMetadata", + "discriminator": [ + 200, + 127, + 6, + 55, + 13, + 32, + 8, + 150 + ] + }, + { + "name": "EvtPartnerWithdrawMigrationFee", + "discriminator": [ + 181, + 105, + 127, + 67, + 8, + 187, + 120, + 57 + ] + }, + { + "name": "EvtPartnerWithdrawSurplus", + "discriminator": [ + 195, + 56, + 152, + 9, + 232, + 72, + 35, + 22 + ] + }, + { + "name": "EvtProtocolWithdrawSurplus", + "discriminator": [ + 109, + 111, + 28, + 221, + 134, + 195, + 230, + 203 + ] + }, + { + "name": "EvtSwap", + "discriminator": [ + 27, + 60, + 21, + 213, + 138, + 170, + 187, + 147 + ] + }, + { + "name": "EvtSwap2", + "discriminator": [ + 189, + 66, + 51, + 168, + 38, + 80, + 117, + 153 + ] + }, + { + "name": "EvtUpdatePoolCreator", + "discriminator": [ + 107, + 225, + 165, + 237, + 91, + 158, + 213, + 220 + ] + }, + { + "name": "EvtVirtualPoolMetadata", + "discriminator": [ + 188, + 18, + 72, + 76, + 195, + 91, + 38, + 74 + ] + }, + { + "name": "EvtWithdrawLeftover", + "discriminator": [ + 191, + 189, + 104, + 143, + 111, + 156, + 94, + 229 + ] + }, + { + "name": "EvtWithdrawMigrationFee", + "discriminator": [ + 26, + 203, + 84, + 85, + 161, + 23, + 100, + 214 + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "MathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6001, + "name": "InvalidFee", + "msg": "Invalid fee setup" + }, + { + "code": 6002, + "name": "ExceededSlippage", + "msg": "Exceeded slippage tolerance" + }, + { + "code": 6003, + "name": "ExceedMaxFeeBps", + "msg": "Exceeded max fee bps" + }, + { + "code": 6004, + "name": "InvalidAdmin", + "msg": "Invalid admin" + }, + { + "code": 6005, + "name": "AmountIsZero", + "msg": "Amount is zero" + }, + { + "code": 6006, + "name": "TypeCastFailed", + "msg": "Type cast error" + }, + { + "code": 6007, + "name": "InvalidActivationType", + "msg": "Invalid activation type" + }, + { + "code": 6008, + "name": "InvalidQuoteMint", + "msg": "Invalid quote mint" + }, + { + "code": 6009, + "name": "InvalidCollectFeeMode", + "msg": "Invalid collect fee mode" + }, + { + "code": 6010, + "name": "InvalidMigrationFeeOption", + "msg": "Invalid migration fee option" + }, + { + "code": 6011, + "name": "InvalidInput", + "msg": "Invalid input" + }, + { + "code": 6012, + "name": "NotEnoughLiquidity", + "msg": "Not enough liquidity" + }, + { + "code": 6013, + "name": "PoolIsCompleted", + "msg": "Pool is completed" + }, + { + "code": 6014, + "name": "PoolIsIncompleted", + "msg": "Pool is incompleted" + }, + { + "code": 6015, + "name": "InvalidMigrationOption", + "msg": "Invalid migration option" + }, + { + "code": 6016, + "name": "InvalidTokenDecimals", + "msg": "Invalid activation type" + }, + { + "code": 6017, + "name": "InvalidTokenType", + "msg": "Invalid token type" + }, + { + "code": 6018, + "name": "InvalidFeePercentage", + "msg": "Invalid fee percentage" + }, + { + "code": 6019, + "name": "InvalidQuoteThreshold", + "msg": "Invalid quote threshold" + }, + { + "code": 6020, + "name": "InvalidTokenSupply", + "msg": "Invalid token supply" + }, + { + "code": 6021, + "name": "InvalidCurve", + "msg": "Invalid curve" + }, + { + "code": 6022, + "name": "NotPermitToDoThisAction", + "msg": "Not permit to do this action" + }, + { + "code": 6023, + "name": "InvalidOwnerAccount", + "msg": "Invalid owner account" + }, + { + "code": 6024, + "name": "InvalidConfigAccount", + "msg": "Invalid config account" + }, + { + "code": 6025, + "name": "SurplusHasBeenWithdraw", + "msg": "Surplus has been withdraw" + }, + { + "code": 6026, + "name": "LeftoverHasBeenWithdraw", + "msg": "Leftover has been withdraw" + }, + { + "code": 6027, + "name": "TotalBaseTokenExceedMaxSupply", + "msg": "Total base token is exceeded max supply" + }, + { + "code": 6028, + "name": "UnsupportNativeMintToken2022", + "msg": "Unsupport native mint token 2022" + }, + { + "code": 6029, + "name": "InsufficientLiquidityForMigration", + "msg": "Insufficient liquidity for migration" + }, + { + "code": 6030, + "name": "MissingPoolConfigInRemainingAccount", + "msg": "Missing pool config in remaining account" + }, + { + "code": 6031, + "name": "InvalidVestingParameters", + "msg": "Invalid vesting parameters" + }, + { + "code": 6032, + "name": "InvalidLeftoverAddress", + "msg": "Invalid leftover address" + }, + { + "code": 6033, + "name": "SwapAmountIsOverAThreshold", + "msg": "Swap amount is over a threshold" + }, + { + "code": 6034, + "name": "InvalidFeeScheduler", + "msg": "Invalid fee scheduler" + }, + { + "code": 6035, + "name": "InvalidCreatorTradingFeePercentage", + "msg": "Invalid creator trading fee percentage" + }, + { + "code": 6036, + "name": "InvalidNewCreator", + "msg": "Invalid new creator" + }, + { + "code": 6037, + "name": "InvalidTokenAuthorityOption", + "msg": "Invalid token authority option" + }, + { + "code": 6038, + "name": "InvalidAccount", + "msg": "Invalid account for the instruction" + }, + { + "code": 6039, + "name": "InvalidMigratorFeePercentage", + "msg": "Invalid migrator fee percentage" + }, + { + "code": 6040, + "name": "MigrationFeeHasBeenWithdraw", + "msg": "Migration fee has been withdraw" + }, + { + "code": 6041, + "name": "InvalidBaseFeeMode", + "msg": "Invalid base fee mode" + }, + { + "code": 6042, + "name": "InvalidFeeRateLimiter", + "msg": "Invalid fee rate limiter" + }, + { + "code": 6043, + "name": "FailToValidateSingleSwapInstruction", + "msg": "Fail to validate single swap instruction in rate limiter" + }, + { + "code": 6044, + "name": "InvalidMigratedPoolFee", + "msg": "Invalid migrated pool fee params" + }, + { + "code": 6045, + "name": "UndeterminedError", + "msg": "Undertermined error" + }, + { + "code": 6046, + "name": "RateLimiterNotSupported", + "msg": "Rate limiter not supported" + }, + { + "code": 6047, + "name": "AmountLeftIsNotZero", + "msg": "Amount left is not zero" + }, + { + "code": 6048, + "name": "NextSqrtPriceIsSmallerThanStartSqrtPrice", + "msg": "Next sqrt price is smaller than start sqrt price" + } + ], + "types": [ + { + "name": "BaseFeeConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_fee_numerator", + "type": "u64" + }, + { + "name": "second_factor", + "type": "u64" + }, + { + "name": "third_factor", + "type": "u64" + }, + { + "name": "first_factor", + "type": "u16" + }, + { + "name": "base_fee_mode", + "type": "u8" + }, + { + "name": "padding_0", + "type": { + "array": [ + "u8", + 5 + ] + } + } + ] + } + }, + { + "name": "BaseFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cliff_fee_numerator", + "type": "u64" + }, + { + "name": "first_factor", + "type": "u16" + }, + { + "name": "second_factor", + "type": "u64" + }, + { + "name": "third_factor", + "type": "u64" + }, + { + "name": "base_fee_mode", + "type": "u8" + } + ] + } + }, + { + "name": "ClaimFeeOperator", + "docs": [ + "Parameter that set by the protocol" + ], + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "operator", + "docs": [ + "operator" + ], + "type": "pubkey" + }, + { + "name": "_padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "Config", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFees" + } + } + }, + { + "name": "activation_duration", + "type": "u64" + }, + { + "name": "vault_config_key", + "type": "pubkey" + }, + { + "name": "pool_creator_authority", + "type": "pubkey" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "partner_fee_numerator", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 219 + ] + } + } + ] + } + }, + { + "name": "ConfigParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "collect_fee_mode", + "type": "u8" + }, + { + "name": "migration_option", + "type": "u8" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "token_type", + "type": "u8" + }, + { + "name": "token_decimal", + "type": "u8" + }, + { + "name": "partner_lp_percentage", + "type": "u8" + }, + { + "name": "partner_locked_lp_percentage", + "type": "u8" + }, + { + "name": "creator_lp_percentage", + "type": "u8" + }, + { + "name": "creator_locked_lp_percentage", + "type": "u8" + }, + { + "name": "migration_quote_threshold", + "type": "u64" + }, + { + "name": "sqrt_start_price", + "type": "u128" + }, + { + "name": "locked_vesting", + "type": { + "defined": { + "name": "LockedVestingParams" + } + } + }, + { + "name": "migration_fee_option", + "type": "u8" + }, + { + "name": "token_supply", + "type": { + "option": { + "defined": { + "name": "TokenSupplyParams" + } + } + } + }, + { + "name": "creator_trading_fee_percentage", + "type": "u8" + }, + { + "name": "token_update_authority", + "type": "u8" + }, + { + "name": "migration_fee", + "type": { + "defined": { + "name": "MigrationFee" + } + } + }, + { + "name": "migrated_pool_fee", + "type": { + "defined": { + "name": "MigratedPoolFee" + } + } + }, + { + "name": "padding", + "docs": [ + "padding for future use" + ], + "type": { + "array": [ + "u64", + 7 + ] + } + }, + { + "name": "curve", + "type": { + "vec": { + "defined": { + "name": "LiquidityDistributionParameters" + } + } + } + } + ] + } + }, + { + "name": "CreatePartnerMetadataParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "padding", + "type": { + "array": [ + "u8", + 96 + ] + } + }, + { + "name": "name", + "type": "string" + }, + { + "name": "website", + "type": "string" + }, + { + "name": "logo", + "type": "string" + } + ] + } + }, + { + "name": "CreateVirtualPoolMetadataParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "padding", + "type": { + "array": [ + "u8", + 96 + ] + } + }, + { + "name": "name", + "type": "string" + }, + { + "name": "website", + "type": "string" + }, + { + "name": "logo", + "type": "string" + } + ] + } + }, + { + "name": "DynamicFeeConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "max_volatility_accumulator", + "type": "u32" + }, + { + "name": "variable_fee_control", + "type": "u32" + }, + { + "name": "bin_step", + "type": "u16" + }, + { + "name": "filter_period", + "type": "u16" + }, + { + "name": "decay_period", + "type": "u16" + }, + { + "name": "reduction_factor", + "type": "u16" + }, + { + "name": "padding2", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "bin_step_u128", + "type": "u128" + } + ] + } + }, + { + "name": "DynamicFeeParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bin_step", + "type": "u16" + }, + { + "name": "bin_step_u128", + "type": "u128" + }, + { + "name": "filter_period", + "type": "u16" + }, + { + "name": "decay_period", + "type": "u16" + }, + { + "name": "reduction_factor", + "type": "u16" + }, + { + "name": "max_volatility_accumulator", + "type": "u32" + }, + { + "name": "variable_fee_control", + "type": "u32" + } + ] + } + }, + { + "name": "EvtClaimCreatorTradingFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_base_amount", + "type": "u64" + }, + { + "name": "token_quote_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimProtocolFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_base_amount", + "type": "u64" + }, + { + "name": "token_quote_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtClaimTradingFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "token_base_amount", + "type": "u64" + }, + { + "name": "token_quote_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtCloseClaimFeeOperator", + "docs": [ + "Close claim fee operator" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "claim_fee_operator", + "type": "pubkey" + }, + { + "name": "operator", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateClaimFeeOperator", + "docs": [ + "Create claim fee operator" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "operator", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateConfig", + "docs": [ + "Create config" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "type": "pubkey" + }, + { + "name": "quote_mint", + "type": "pubkey" + }, + { + "name": "fee_claimer", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "pool_fees", + "type": { + "defined": { + "name": "PoolFeeParameters" + } + } + }, + { + "name": "collect_fee_mode", + "type": "u8" + }, + { + "name": "migration_option", + "type": "u8" + }, + { + "name": "activation_type", + "type": "u8" + }, + { + "name": "token_decimal", + "type": "u8" + }, + { + "name": "token_type", + "type": "u8" + }, + { + "name": "partner_locked_lp_percentage", + "type": "u8" + }, + { + "name": "partner_lp_percentage", + "type": "u8" + }, + { + "name": "creator_locked_lp_percentage", + "type": "u8" + }, + { + "name": "creator_lp_percentage", + "type": "u8" + }, + { + "name": "swap_base_amount", + "type": "u64" + }, + { + "name": "migration_quote_threshold", + "type": "u64" + }, + { + "name": "migration_base_amount", + "type": "u64" + }, + { + "name": "sqrt_start_price", + "type": "u128" + }, + { + "name": "locked_vesting", + "type": { + "defined": { + "name": "LockedVestingParams" + } + } + }, + { + "name": "migration_fee_option", + "type": "u8" + }, + { + "name": "fixed_token_supply_flag", + "type": "u8" + }, + { + "name": "pre_migration_token_supply", + "type": "u64" + }, + { + "name": "post_migration_token_supply", + "type": "u64" + }, + { + "name": "curve", + "type": { + "vec": { + "defined": { + "name": "LiquidityDistributionParameters" + } + } + } + } + ] + } + }, + { + "name": "EvtCreateConfigV2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "config", + "type": "pubkey" + }, + { + "name": "quote_mint", + "type": "pubkey" + }, + { + "name": "fee_claimer", + "type": "pubkey" + }, + { + "name": "leftover_receiver", + "type": "pubkey" + }, + { + "name": "config_parameters", + "type": { + "defined": { + "name": "ConfigParameters" + } + } + } + ] + } + }, + { + "name": "EvtCreateDammV2MigrationMetadata", + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreateMeteoraMigrationMetadata", + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtCreatorWithdrawSurplus", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "surplus_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtCurveComplete", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "config", + "type": "pubkey" + }, + { + "name": "base_reserve", + "type": "u64" + }, + { + "name": "quote_reserve", + "type": "u64" + } + ] + } + }, + { + "name": "EvtInitializePool", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "config", + "type": "pubkey" + }, + { + "name": "creator", + "type": "pubkey" + }, + { + "name": "base_mint", + "type": "pubkey" + }, + { + "name": "pool_type", + "type": "u8" + }, + { + "name": "activation_point", + "type": "u64" + } + ] + } + }, + { + "name": "EvtPartnerMetadata", + "docs": [ + "Create partner metadata" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "partner_metadata", + "type": "pubkey" + }, + { + "name": "fee_claimer", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtPartnerWithdrawMigrationFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "fee", + "type": "u64" + } + ] + } + }, + { + "name": "EvtPartnerWithdrawSurplus", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "surplus_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtProtocolWithdrawSurplus", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "surplus_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtSwap", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "config", + "type": "pubkey" + }, + { + "name": "trade_direction", + "type": "u8" + }, + { + "name": "has_referral", + "type": "bool" + }, + { + "name": "params", + "type": { + "defined": { + "name": "SwapParameters" + } + } + }, + { + "name": "swap_result", + "type": { + "defined": { + "name": "SwapResult" + } + } + }, + { + "name": "amount_in", + "type": "u64" + }, + { + "name": "current_timestamp", + "type": "u64" + } + ] + } + }, + { + "name": "EvtSwap2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "config", + "type": "pubkey" + }, + { + "name": "trade_direction", + "type": "u8" + }, + { + "name": "has_referral", + "type": "bool" + }, + { + "name": "swap_parameters", + "type": { + "defined": { + "name": "SwapParameters2" + } + } + }, + { + "name": "swap_result", + "type": { + "defined": { + "name": "SwapResult2" + } + } + }, + { + "name": "quote_reserve_amount", + "type": "u64" + }, + { + "name": "migration_threshold", + "type": "u64" + }, + { + "name": "current_timestamp", + "type": "u64" + } + ] + } + }, + { + "name": "EvtUpdatePoolCreator", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "creator", + "type": "pubkey" + }, + { + "name": "new_creator", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtVirtualPoolMetadata", + "docs": [ + "Create virtual pool metadata" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool_metadata", + "type": "pubkey" + }, + { + "name": "virtual_pool", + "type": "pubkey" + } + ] + } + }, + { + "name": "EvtWithdrawLeftover", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "leftover_receiver", + "type": "pubkey" + }, + { + "name": "leftover_amount", + "type": "u64" + } + ] + } + }, + { + "name": "EvtWithdrawMigrationFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "fee", + "type": "u64" + }, + { + "name": "flag", + "type": "u8" + } + ] + } + }, + { + "name": "InitializePoolParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "uri", + "type": "string" + } + ] + } + }, + { + "name": "LiquidityDistributionConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "sqrt_price", + "type": "u128" + }, + { + "name": "liquidity", + "type": "u128" + } + ] + } + }, + { + "name": "LiquidityDistributionParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sqrt_price", + "type": "u128" + }, + { + "name": "liquidity", + "type": "u128" + } + ] + } + }, + { + "name": "LockEscrow", + "docs": [ + "State of lock escrow account" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "pool", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "escrow_vault", + "type": "pubkey" + }, + { + "name": "bump", + "type": "u8" + }, + { + "name": "total_locked_amount", + "type": "u64" + }, + { + "name": "lp_per_token", + "type": "u128" + }, + { + "name": "unclaimed_fee_pending", + "type": "u64" + }, + { + "name": "a_fee", + "type": "u64" + }, + { + "name": "b_fee", + "type": "u64" + } + ] + } + }, + { + "name": "LockedVestingConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_per_period", + "type": "u64" + }, + { + "name": "cliff_duration_from_migration_time", + "type": "u64" + }, + { + "name": "frequency", + "type": "u64" + }, + { + "name": "number_of_period", + "type": "u64" + }, + { + "name": "cliff_unlock_amount", + "type": "u64" + }, + { + "name": "_padding", + "type": "u64" + } + ] + } + }, + { + "name": "LockedVestingParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_per_period", + "type": "u64" + }, + { + "name": "cliff_duration_from_migration_time", + "type": "u64" + }, + { + "name": "frequency", + "type": "u64" + }, + { + "name": "number_of_period", + "type": "u64" + }, + { + "name": "cliff_unlock_amount", + "type": "u64" + } + ] + } + }, + { + "name": "MeteoraDammMigrationMetadata", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool", + "docs": [ + "pool" + ], + "type": "pubkey" + }, + { + "name": "padding_0", + "docs": [ + "!!! BE CAREFUL to use tomestone field, previous is pool creator" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "partner", + "docs": [ + "partner" + ], + "type": "pubkey" + }, + { + "name": "lp_mint", + "docs": [ + "lp mint" + ], + "type": "pubkey" + }, + { + "name": "partner_locked_lp", + "docs": [ + "partner locked lp" + ], + "type": "u64" + }, + { + "name": "partner_lp", + "docs": [ + "partner lp" + ], + "type": "u64" + }, + { + "name": "creator_locked_lp", + "docs": [ + "creator locked lp" + ], + "type": "u64" + }, + { + "name": "creator_lp", + "docs": [ + "creator lp" + ], + "type": "u64" + }, + { + "name": "_padding_0", + "docs": [ + "padding" + ], + "type": "u8" + }, + { + "name": "creator_locked_status", + "docs": [ + "flag to check whether lp is locked for creator" + ], + "type": "u8" + }, + { + "name": "partner_locked_status", + "docs": [ + "flag to check whether lp is locked for partner" + ], + "type": "u8" + }, + { + "name": "creator_claim_status", + "docs": [ + "flag to check whether creator has claimed lp token" + ], + "type": "u8" + }, + { + "name": "partner_claim_status", + "docs": [ + "flag to check whether partner has claimed lp token" + ], + "type": "u8" + }, + { + "name": "_padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 107 + ] + } + } + ] + } + }, + { + "name": "MeteoraDammV2Metadata", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool", + "docs": [ + "pool" + ], + "type": "pubkey" + }, + { + "name": "padding_0", + "docs": [ + "!!! BE CAREFUL to use tomestone field, previous is pool creator" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "partner", + "docs": [ + "partner" + ], + "type": "pubkey" + }, + { + "name": "_padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 126 + ] + } + } + ] + } + }, + { + "name": "MigratedPoolFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "collect_fee_mode", + "type": "u8" + }, + { + "name": "dynamic_fee", + "type": "u8" + }, + { + "name": "pool_fee_bps", + "type": "u16" + } + ] + } + }, + { + "name": "MigrationFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "fee_percentage", + "type": "u8" + }, + { + "name": "creator_fee_percentage", + "type": "u8" + } + ] + } + }, + { + "name": "PartnerMetadata", + "docs": [ + "Metadata for a partner." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "fee_claimer", + "docs": [ + "fee claimer" + ], + "type": "pubkey" + }, + { + "name": "padding", + "docs": [ + "padding for future use" + ], + "type": { + "array": [ + "u128", + 6 + ] + } + }, + { + "name": "name", + "docs": [ + "Name of partner." + ], + "type": "string" + }, + { + "name": "website", + "docs": [ + "Website of partner." + ], + "type": "string" + }, + { + "name": "logo", + "docs": [ + "Logo of partner" + ], + "type": "string" + } + ] + } + }, + { + "name": "PoolConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "quote_mint", + "docs": [ + "quote mint" + ], + "type": "pubkey" + }, + { + "name": "fee_claimer", + "docs": [ + "Address to get the fee" + ], + "type": "pubkey" + }, + { + "name": "leftover_receiver", + "docs": [ + "Address to receive extra base token after migration, in case token is fixed supply" + ], + "type": "pubkey" + }, + { + "name": "pool_fees", + "docs": [ + "Pool fee" + ], + "type": { + "defined": { + "name": "PoolFeesConfig" + } + } + }, + { + "name": "collect_fee_mode", + "docs": [ + "Collect fee mode" + ], + "type": "u8" + }, + { + "name": "migration_option", + "docs": [ + "migration option" + ], + "type": "u8" + }, + { + "name": "activation_type", + "docs": [ + "whether mode slot or timestamp" + ], + "type": "u8" + }, + { + "name": "token_decimal", + "docs": [ + "token decimals" + ], + "type": "u8" + }, + { + "name": "version", + "docs": [ + "version" + ], + "type": "u8" + }, + { + "name": "token_type", + "docs": [ + "token type of base token" + ], + "type": "u8" + }, + { + "name": "quote_token_flag", + "docs": [ + "quote token flag" + ], + "type": "u8" + }, + { + "name": "partner_locked_lp_percentage", + "docs": [ + "partner locked lp percentage" + ], + "type": "u8" + }, + { + "name": "partner_lp_percentage", + "docs": [ + "partner lp percentage" + ], + "type": "u8" + }, + { + "name": "creator_locked_lp_percentage", + "docs": [ + "creator post migration fee percentage" + ], + "type": "u8" + }, + { + "name": "creator_lp_percentage", + "docs": [ + "creator lp percentage" + ], + "type": "u8" + }, + { + "name": "migration_fee_option", + "docs": [ + "migration fee option" + ], + "type": "u8" + }, + { + "name": "fixed_token_supply_flag", + "docs": [ + "flag to indicate whether token is dynamic supply (0) or fixed supply (1)" + ], + "type": "u8" + }, + { + "name": "creator_trading_fee_percentage", + "docs": [ + "creator trading fee percentage" + ], + "type": "u8" + }, + { + "name": "token_update_authority", + "docs": [ + "token update authority" + ], + "type": "u8" + }, + { + "name": "migration_fee_percentage", + "docs": [ + "migration fee percentage" + ], + "type": "u8" + }, + { + "name": "creator_migration_fee_percentage", + "docs": [ + "creator migration fee percentage" + ], + "type": "u8" + }, + { + "name": "_padding_0", + "docs": [ + "padding 0" + ], + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "swap_base_amount", + "docs": [ + "swap base amount" + ], + "type": "u64" + }, + { + "name": "migration_quote_threshold", + "docs": [ + "migration quote threshold (in quote token)" + ], + "type": "u64" + }, + { + "name": "migration_base_threshold", + "docs": [ + "migration base threshold (in base token)" + ], + "type": "u64" + }, + { + "name": "migration_sqrt_price", + "docs": [ + "migration sqrt price" + ], + "type": "u128" + }, + { + "name": "locked_vesting_config", + "docs": [ + "locked vesting config" + ], + "type": { + "defined": { + "name": "LockedVestingConfig" + } + } + }, + { + "name": "pre_migration_token_supply", + "docs": [ + "pre migration token supply" + ], + "type": "u64" + }, + { + "name": "post_migration_token_supply", + "docs": [ + "post migration token supply" + ], + "type": "u64" + }, + { + "name": "migrated_collect_fee_mode", + "docs": [ + "migrated pool collect fee mode" + ], + "type": "u8" + }, + { + "name": "migrated_dynamic_fee", + "docs": [ + "migrated dynamic fee option." + ], + "type": "u8" + }, + { + "name": "migrated_pool_fee_bps", + "docs": [ + "migrated pool fee in bps" + ], + "type": "u16" + }, + { + "name": "_padding_1", + "docs": [ + "padding 1" + ], + "type": { + "array": [ + "u8", + 12 + ] + } + }, + { + "name": "_padding_2", + "docs": [ + "padding 2" + ], + "type": "u128" + }, + { + "name": "sqrt_start_price", + "docs": [ + "minimum price" + ], + "type": "u128" + }, + { + "name": "curve", + "docs": [ + "curve, only use 20 point firstly, we can extend that latter" + ], + "type": { + "array": [ + { + "defined": { + "name": "LiquidityDistributionConfig" + } + }, + 20 + ] + } + } + ] + } + }, + { + "name": "PoolFeeParameters", + "docs": [ + "Information regarding fee charges" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "docs": [ + "Base fee" + ], + "type": { + "defined": { + "name": "BaseFeeParameters" + } + } + }, + { + "name": "dynamic_fee", + "docs": [ + "dynamic fee" + ], + "type": { + "option": { + "defined": { + "name": "DynamicFeeParameters" + } + } + } + } + ] + } + }, + { + "name": "PoolFees", + "docs": [ + "Information regarding fee charges" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "trade_fee_numerator", + "type": "u64" + }, + { + "name": "trade_fee_denominator", + "type": "u64" + }, + { + "name": "protocol_trade_fee_numerator", + "type": "u64" + }, + { + "name": "protocol_trade_fee_denominator", + "type": "u64" + } + ] + } + }, + { + "name": "PoolFeesConfig", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "type": { + "defined": { + "name": "BaseFeeConfig" + } + } + }, + { + "name": "dynamic_fee", + "type": { + "defined": { + "name": "DynamicFeeConfig" + } + } + }, + { + "name": "padding_0", + "type": { + "array": [ + "u64", + 5 + ] + } + }, + { + "name": "padding_1", + "type": { + "array": [ + "u8", + 6 + ] + } + }, + { + "name": "protocol_fee_percent", + "type": "u8" + }, + { + "name": "referral_fee_percent", + "type": "u8" + } + ] + } + }, + { + "name": "PoolMetrics", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "total_protocol_base_fee", + "type": "u64" + }, + { + "name": "total_protocol_quote_fee", + "type": "u64" + }, + { + "name": "total_trading_base_fee", + "type": "u64" + }, + { + "name": "total_trading_quote_fee", + "type": "u64" + } + ] + } + }, + { + "name": "SwapParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_in", + "type": "u64" + }, + { + "name": "minimum_amount_out", + "type": "u64" + } + ] + } + }, + { + "name": "SwapParameters2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_0", + "docs": [ + "When it's exact in, partial fill, this will be amount_in. When it's exact out, this will be amount_out" + ], + "type": "u64" + }, + { + "name": "amount_1", + "docs": [ + "When it's exact in, partial fill, this will be minimum_amount_out. When it's exact out, this will be maximum_amount_in" + ], + "type": "u64" + }, + { + "name": "swap_mode", + "docs": [ + "Swap mode, refer [SwapMode]" + ], + "type": "u8" + } + ] + } + }, + { + "name": "SwapResult", + "docs": [ + "Encodes all results of swapping" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "actual_input_amount", + "type": "u64" + }, + { + "name": "output_amount", + "type": "u64" + }, + { + "name": "next_sqrt_price", + "type": "u128" + }, + { + "name": "trading_fee", + "type": "u64" + }, + { + "name": "protocol_fee", + "type": "u64" + }, + { + "name": "referral_fee", + "type": "u64" + } + ] + } + }, + { + "name": "SwapResult2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "included_fee_input_amount", + "type": "u64" + }, + { + "name": "excluded_fee_input_amount", + "type": "u64" + }, + { + "name": "amount_left", + "type": "u64" + }, + { + "name": "output_amount", + "type": "u64" + }, + { + "name": "next_sqrt_price", + "type": "u128" + }, + { + "name": "trading_fee", + "type": "u64" + }, + { + "name": "protocol_fee", + "type": "u64" + }, + { + "name": "referral_fee", + "type": "u64" + } + ] + } + }, + { + "name": "TokenSupplyParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pre_migration_token_supply", + "docs": [ + "pre migration token supply" + ], + "type": "u64" + }, + { + "name": "post_migration_token_supply", + "docs": [ + "post migration token supply", + "becase DBC allow user to swap over the migration quote threshold, so in extreme case user may swap more than allowed buffer on curve", + "that result the total supply in post migration may be increased a bit (between pre_migration_token_supply and post_migration_token_supply)" + ], + "type": "u64" + } + ] + } + }, + { + "name": "VirtualPool", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "volatility_tracker", + "docs": [ + "volatility tracker" + ], + "type": { + "defined": { + "name": "VolatilityTracker" + } + } + }, + { + "name": "config", + "docs": [ + "config key" + ], + "type": "pubkey" + }, + { + "name": "creator", + "docs": [ + "creator" + ], + "type": "pubkey" + }, + { + "name": "base_mint", + "docs": [ + "base mint" + ], + "type": "pubkey" + }, + { + "name": "base_vault", + "docs": [ + "base vault" + ], + "type": "pubkey" + }, + { + "name": "quote_vault", + "docs": [ + "quote vault" + ], + "type": "pubkey" + }, + { + "name": "base_reserve", + "docs": [ + "base reserve" + ], + "type": "u64" + }, + { + "name": "quote_reserve", + "docs": [ + "quote reserve" + ], + "type": "u64" + }, + { + "name": "protocol_base_fee", + "docs": [ + "protocol base fee" + ], + "type": "u64" + }, + { + "name": "protocol_quote_fee", + "docs": [ + "protocol quote fee" + ], + "type": "u64" + }, + { + "name": "partner_base_fee", + "docs": [ + "partner base fee" + ], + "type": "u64" + }, + { + "name": "partner_quote_fee", + "docs": [ + "trading quote fee" + ], + "type": "u64" + }, + { + "name": "sqrt_price", + "docs": [ + "current price" + ], + "type": "u128" + }, + { + "name": "activation_point", + "docs": [ + "Activation point" + ], + "type": "u64" + }, + { + "name": "pool_type", + "docs": [ + "pool type, spl token or token2022" + ], + "type": "u8" + }, + { + "name": "is_migrated", + "docs": [ + "is migrated" + ], + "type": "u8" + }, + { + "name": "is_partner_withdraw_surplus", + "docs": [ + "is partner withdraw surplus" + ], + "type": "u8" + }, + { + "name": "is_protocol_withdraw_surplus", + "docs": [ + "is protocol withdraw surplus" + ], + "type": "u8" + }, + { + "name": "migration_progress", + "docs": [ + "migration progress" + ], + "type": "u8" + }, + { + "name": "is_withdraw_leftover", + "docs": [ + "is withdraw leftover" + ], + "type": "u8" + }, + { + "name": "is_creator_withdraw_surplus", + "docs": [ + "is creator withdraw surplus" + ], + "type": "u8" + }, + { + "name": "migration_fee_withdraw_status", + "docs": [ + "migration fee withdraw status, first bit is for partner, second bit is for creator" + ], + "type": "u8" + }, + { + "name": "metrics", + "docs": [ + "pool metrics" + ], + "type": { + "defined": { + "name": "PoolMetrics" + } + } + }, + { + "name": "finish_curve_timestamp", + "docs": [ + "The time curve is finished" + ], + "type": "u64" + }, + { + "name": "creator_base_fee", + "docs": [ + "creator base fee" + ], + "type": "u64" + }, + { + "name": "creator_quote_fee", + "docs": [ + "creator quote fee" + ], + "type": "u64" + }, + { + "name": "_padding_1", + "docs": [ + "Padding for further use" + ], + "type": { + "array": [ + "u64", + 7 + ] + } + } + ] + } + }, + { + "name": "VirtualPoolMetadata", + "docs": [ + "Metadata for a virtual pool." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "virtual_pool", + "docs": [ + "virtual pool" + ], + "type": "pubkey" + }, + { + "name": "padding", + "docs": [ + "padding for future use" + ], + "type": { + "array": [ + "u128", + 6 + ] + } + }, + { + "name": "name", + "docs": [ + "Name of project." + ], + "type": "string" + }, + { + "name": "website", + "docs": [ + "Website of project." + ], + "type": "string" + }, + { + "name": "logo", + "docs": [ + "Logo of project" + ], + "type": "string" + } + ] + } + }, + { + "name": "VolatilityTracker", + "serialization": "bytemuck", + "repr": { + "kind": "c" + }, + "type": { + "kind": "struct", + "fields": [ + { + "name": "last_update_timestamp", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "sqrt_price_reference", + "type": "u128" + }, + { + "name": "volatility_accumulator", + "type": "u128" + }, + { + "name": "volatility_reference", + "type": "u128" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/idl/meteora_lb_clmm.json b/idl/meteora_lb_clmm.json new file mode 100644 index 0000000..611e8f8 --- /dev/null +++ b/idl/meteora_lb_clmm.json @@ -0,0 +1,2350 @@ +{ + "version": "0.5.1", + "name": "lb_clmm", + "constants": [ + { "name": "BASIS_POINT_MAX", "type": "i32", "value": "10000" }, + { + "name": "MAX_BIN_PER_ARRAY", + "type": { "defined": "usize" }, + "value": "70" + }, + { + "name": "MAX_BIN_PER_POSITION", + "type": { "defined": "usize" }, + "value": "70" + }, + { "name": "MIN_BIN_ID", "type": "i32", "value": "- 443636" }, + { "name": "MAX_BIN_ID", "type": "i32", "value": "443636" }, + { "name": "MAX_FEE_RATE", "type": "u64", "value": "100_000_000" }, + { "name": "FEE_PRECISION", "type": "u64", "value": "1_000_000_000" }, + { "name": "MAX_PROTOCOL_SHARE", "type": "u16", "value": "2_500" }, + { "name": "HOST_FEE_BPS", "type": "u16", "value": "2_000" }, + { "name": "NUM_REWARDS", "type": { "defined": "usize" }, "value": "2" }, + { "name": "MIN_REWARD_DURATION", "type": "u64", "value": "1" }, + { "name": "MAX_REWARD_DURATION", "type": "u64", "value": "31536000" }, + { + "name": "EXTENSION_BINARRAY_BITMAP_SIZE", + "type": { "defined": "usize" }, + "value": "12" + }, + { "name": "BIN_ARRAY_BITMAP_SIZE", "type": "i32", "value": "512" }, + { + "name": "MAX_REWARD_BIN_SPLIT", + "type": { "defined": "usize" }, + "value": "15" + }, + { + "name": "BIN_ARRAY", + "type": "bytes", + "value": "[98, 105, 110, 95, 97, 114, 114, 97, 121]" + }, + { + "name": "ORACLE", + "type": "bytes", + "value": "[111, 114, 97, 99, 108, 101]" + }, + { + "name": "BIN_ARRAY_BITMAP_SEED", + "type": "bytes", + "value": "[98, 105, 116, 109, 97, 112]" + }, + { + "name": "PRESET_PARAMETER", + "type": "bytes", + "value": "[112, 114, 101, 115, 101, 116, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114]" + }, + { + "name": "POSITION", + "type": "bytes", + "value": "[112, 111, 115, 105, 116, 105, 111, 110]" + } + ], + "instructions": [ + { + "name": "initializeLbPair", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "tokenMintX", "isMut": false, "isSigner": false }, + { "name": "tokenMintY", "isMut": false, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "oracle", "isMut": true, "isSigner": false }, + { "name": "presetParameter", "isMut": false, "isSigner": false }, + { "name": "funder", "isMut": true, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "activeId", "type": "i32" }, + { "name": "binStep", "type": "u16" } + ] + }, + { + "name": "initializePermissionLbPair", + "accounts": [ + { "name": "base", "isMut": false, "isSigner": true }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "tokenMintX", "isMut": false, "isSigner": false }, + { "name": "tokenMintY", "isMut": false, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "oracle", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "ixData", "type": { "defined": "InitPermissionPairIx" } } + ] + }, + { + "name": "initializeBinArrayBitmapExtension", + "accounts": [ + { "name": "lbPair", "isMut": false, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "docs": [ + "Initialize an account to store if a bin array is initialized." + ] + }, + { "name": "funder", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false } + ], + "args": [] + }, + { + "name": "initializeBinArray", + "accounts": [ + { "name": "lbPair", "isMut": false, "isSigner": false }, + { "name": "binArray", "isMut": true, "isSigner": false }, + { "name": "funder", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "index", "type": "i64" }] + }, + { + "name": "addLiquidity", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { "defined": "LiquidityParameter" } + } + ] + }, + { + "name": "addLiquidityByWeight", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { "defined": "LiquidityParameterByWeight" } + } + ] + }, + { + "name": "addLiquidityByStrategy", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { "defined": "LiquidityParameterByStrategy" } + } + ] + }, + { + "name": "addLiquidityByStrategyOneSide", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userToken", "isMut": true, "isSigner": false }, + { "name": "reserve", "isMut": true, "isSigner": false }, + { "name": "tokenMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { "defined": "LiquidityParameterByStrategyOneSide" } + } + ] + }, + { + "name": "addLiquidityOneSide", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userToken", "isMut": true, "isSigner": false }, + { "name": "reserve", "isMut": true, "isSigner": false }, + { "name": "tokenMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { "defined": "LiquidityOneSideParameter" } + } + ] + }, + { + "name": "removeLiquidity", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "binLiquidityRemoval", + "type": { "vec": { "defined": "BinLiquidityReduction" } } + } + ] + }, + { + "name": "initializePosition", + "accounts": [ + { "name": "payer", "isMut": true, "isSigner": true }, + { "name": "position", "isMut": true, "isSigner": true }, + { "name": "lbPair", "isMut": false, "isSigner": false }, + { "name": "owner", "isMut": false, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "lowerBinId", "type": "i32" }, + { "name": "width", "type": "i32" } + ] + }, + { + "name": "initializePositionPda", + "accounts": [ + { "name": "payer", "isMut": true, "isSigner": true }, + { "name": "base", "isMut": false, "isSigner": true }, + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": false, "isSigner": false }, + { + "name": "owner", + "isMut": false, + "isSigner": true, + "docs": ["owner"] + }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "lowerBinId", "type": "i32" }, + { "name": "width", "type": "i32" } + ] + }, + { + "name": "initializePositionByOperator", + "accounts": [ + { "name": "payer", "isMut": true, "isSigner": true }, + { "name": "base", "isMut": false, "isSigner": true }, + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": false, "isSigner": false }, + { + "name": "operator", + "isMut": false, + "isSigner": true, + "docs": ["operator"] + }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "lowerBinId", "type": "i32" }, + { "name": "width", "type": "i32" }, + { "name": "owner", "type": "publicKey" }, + { "name": "feeOwner", "type": "publicKey" } + ] + }, + { + "name": "updatePositionOperator", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "owner", "isMut": false, "isSigner": true }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "operator", "type": "publicKey" }] + }, + { + "name": "swap", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "userTokenIn", "isMut": true, "isSigner": false }, + { "name": "userTokenOut", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "oracle", "isMut": true, "isSigner": false }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "user", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "amountIn", "type": "u64" }, + { "name": "minAmountOut", "type": "u64" } + ] + }, + { + "name": "withdrawProtocolFee", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "receiverTokenX", "isMut": true, "isSigner": false }, + { "name": "receiverTokenY", "isMut": true, "isSigner": false }, + { "name": "feeOwner", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "amountX", "type": "u64" }, + { "name": "amountY", "type": "u64" } + ] + }, + { + "name": "updateFeeOwner", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "newFeeOwner", "isMut": false, "isSigner": false }, + { "name": "admin", "isMut": false, "isSigner": true } + ], + "args": [] + }, + { + "name": "initializeReward", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "rewardVault", "isMut": true, "isSigner": false }, + { "name": "rewardMint", "isMut": false, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "rewardIndex", "type": "u64" }, + { "name": "rewardDuration", "type": "u64" }, + { "name": "funder", "type": "publicKey" } + ] + }, + { + "name": "fundReward", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "rewardVault", "isMut": true, "isSigner": false }, + { "name": "rewardMint", "isMut": false, "isSigner": false }, + { "name": "funderTokenAccount", "isMut": true, "isSigner": false }, + { "name": "funder", "isMut": false, "isSigner": true }, + { "name": "binArray", "isMut": true, "isSigner": false }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "rewardIndex", "type": "u64" }, + { "name": "amount", "type": "u64" }, + { "name": "carryForward", "type": "bool" } + ] + }, + { + "name": "updateRewardFunder", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": false, "isSigner": true }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "rewardIndex", "type": "u64" }, + { "name": "newFunder", "type": "publicKey" } + ] + }, + { + "name": "updateRewardDuration", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": false, "isSigner": true }, + { "name": "binArray", "isMut": true, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "rewardIndex", "type": "u64" }, + { "name": "newDuration", "type": "u64" } + ] + }, + { + "name": "claimReward", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "rewardVault", "isMut": true, "isSigner": false }, + { "name": "rewardMint", "isMut": false, "isSigner": false }, + { "name": "userTokenAccount", "isMut": true, "isSigner": false }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "rewardIndex", "type": "u64" }] + }, + { + "name": "claimFee", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [] + }, + { + "name": "closePosition", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "rentReceiver", "isMut": true, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [] + }, + { + "name": "updateFeeParameters", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": false, "isSigner": true }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "feeParameter", "type": { "defined": "FeeParameter" } } + ] + }, + { + "name": "increaseOracleLength", + "accounts": [ + { "name": "oracle", "isMut": true, "isSigner": false }, + { "name": "funder", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "lengthToAdd", "type": "u64" }] + }, + { + "name": "initializePresetParameter", + "accounts": [ + { "name": "presetParameter", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "ix", "type": { "defined": "InitPresetParametersIx" } } + ] + }, + { + "name": "initializePresetParameterV2", + "accounts": [ + { "name": "presetParameter", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rent", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "ix", "type": { "defined": "InitPresetParametersIx" } } + ] + }, + { + "name": "closePresetParameter", + "accounts": [ + { "name": "presetParameter", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true }, + { "name": "rentReceiver", "isMut": true, "isSigner": false } + ], + "args": [] + }, + { + "name": "removeAllLiquidity", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [] + }, + { + "name": "togglePairStatus", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": false, "isSigner": true } + ], + "args": [] + }, + { + "name": "updateWhitelistedWallet", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "creator", "isMut": false, "isSigner": true } + ], + "args": [ + { "name": "idx", "type": "u8" }, + { "name": "wallet", "type": "publicKey" } + ] + }, + { + "name": "migratePosition", + "accounts": [ + { "name": "positionV2", "isMut": true, "isSigner": true }, + { "name": "positionV1", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "owner", "isMut": true, "isSigner": true }, + { "name": "systemProgram", "isMut": false, "isSigner": false }, + { "name": "rentReceiver", "isMut": true, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [] + }, + { + "name": "migrateBinArray", + "accounts": [{ "name": "lbPair", "isMut": false, "isSigner": false }], + "args": [] + }, + { + "name": "updateFeesAndRewards", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "owner", "isMut": false, "isSigner": true } + ], + "args": [] + }, + { + "name": "withdrawIneligibleReward", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "rewardVault", "isMut": true, "isSigner": false }, + { "name": "rewardMint", "isMut": false, "isSigner": false }, + { "name": "funderTokenAccount", "isMut": true, "isSigner": false }, + { "name": "funder", "isMut": false, "isSigner": true }, + { "name": "binArray", "isMut": true, "isSigner": false }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "rewardIndex", "type": "u64" }] + }, + { + "name": "setActivationSlot", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true } + ], + "args": [{ "name": "activationSlot", "type": "u64" }] + }, + { + "name": "setMaxSwappedAmount", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { "name": "admin", "isMut": true, "isSigner": true } + ], + "args": [ + { "name": "swapCapDeactivateSlot", "type": "u64" }, + { "name": "maxSwappedAmount", "type": "u64" } + ] + }, + { + "name": "setLockReleaseSlot", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": false, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "newLockReleaseSlot", "type": "u64" }] + }, + { + "name": "removeLiquidityByRange", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userTokenX", "isMut": true, "isSigner": false }, + { "name": "userTokenY", "isMut": true, "isSigner": false }, + { "name": "reserveX", "isMut": true, "isSigner": false }, + { "name": "reserveY", "isMut": true, "isSigner": false }, + { "name": "tokenXMint", "isMut": false, "isSigner": false }, + { "name": "tokenYMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenXProgram", "isMut": false, "isSigner": false }, + { "name": "tokenYProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { "name": "fromBinId", "type": "i32" }, + { "name": "toBinId", "type": "i32" }, + { "name": "bpsToRemove", "type": "u16" } + ] + }, + { + "name": "addLiquidityOneSidePrecise", + "accounts": [ + { "name": "position", "isMut": true, "isSigner": false }, + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { "name": "userToken", "isMut": true, "isSigner": false }, + { "name": "reserve", "isMut": true, "isSigner": false }, + { "name": "tokenMint", "isMut": false, "isSigner": false }, + { "name": "binArrayLower", "isMut": true, "isSigner": false }, + { "name": "binArrayUpper", "isMut": true, "isSigner": false }, + { "name": "sender", "isMut": false, "isSigner": true }, + { "name": "tokenProgram", "isMut": false, "isSigner": false }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [ + { + "name": "parameter", + "type": { "defined": "AddLiquiditySingleSidePreciseParameter" } + } + ] + }, + { + "name": "goToABin", + "accounts": [ + { "name": "lbPair", "isMut": true, "isSigner": false }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "fromBinArray", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "toBinArray", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { "name": "eventAuthority", "isMut": false, "isSigner": false }, + { "name": "program", "isMut": false, "isSigner": false } + ], + "args": [{ "name": "binId", "type": "i32" }] + } + ], + "accounts": [ + { + "name": "BinArrayBitmapExtension", + "type": { + "kind": "struct", + "fields": [ + { "name": "lbPair", "type": "publicKey" }, + { + "name": "positiveBinArrayBitmap", + "docs": [ + "Packed initialized bin array state for start_bin_index is positive" + ], + "type": { "array": [{ "array": ["u64", 8] }, 12] } + }, + { + "name": "negativeBinArrayBitmap", + "docs": [ + "Packed initialized bin array state for start_bin_index is negative" + ], + "type": { "array": [{ "array": ["u64", 8] }, 12] } + } + ] + } + }, + { + "name": "BinArray", + "docs": [ + "An account to contain a range of bin. For example: Bin 100 <-> 200.", + "For example:", + "BinArray index: 0 contains bin 0 <-> 599", + "index: 2 contains bin 600 <-> 1199, ..." + ], + "type": { + "kind": "struct", + "fields": [ + { "name": "index", "type": "i64" }, + { "name": "version", "docs": ["Version of binArray"], "type": "u8" }, + { "name": "padding", "type": { "array": ["u8", 7] } }, + { "name": "lbPair", "type": "publicKey" }, + { "name": "bins", "type": { "array": [{ "defined": "Bin" }, 70] } } + ] + } + }, + { + "name": "LbPair", + "type": { + "kind": "struct", + "fields": [ + { "name": "parameters", "type": { "defined": "StaticParameters" } }, + { + "name": "vParameters", + "type": { "defined": "VariableParameters" } + }, + { "name": "bumpSeed", "type": { "array": ["u8", 1] } }, + { + "name": "binStepSeed", + "docs": ["Bin step signer seed"], + "type": { "array": ["u8", 2] } + }, + { "name": "pairType", "docs": ["Type of the pair"], "type": "u8" }, + { "name": "activeId", "docs": ["Active bin id"], "type": "i32" }, + { + "name": "binStep", + "docs": ["Bin step. Represent the price increment / decrement."], + "type": "u16" + }, + { + "name": "status", + "docs": ["Status of the pair. Check PairStatus enum."], + "type": "u8" + }, + { "name": "padding1", "type": { "array": ["u8", 5] } }, + { + "name": "tokenXMint", + "docs": ["Token X mint"], + "type": "publicKey" + }, + { + "name": "tokenYMint", + "docs": ["Token Y mint"], + "type": "publicKey" + }, + { + "name": "reserveX", + "docs": ["LB token X vault"], + "type": "publicKey" + }, + { + "name": "reserveY", + "docs": ["LB token Y vault"], + "type": "publicKey" + }, + { + "name": "protocolFee", + "docs": ["Uncollected protocol fee"], + "type": { "defined": "ProtocolFee" } + }, + { + "name": "feeOwner", + "docs": ["Protocol fee owner,"], + "type": "publicKey" + }, + { + "name": "rewardInfos", + "docs": ["Farming reward information"], + "type": { "array": [{ "defined": "RewardInfo" }, 2] } + }, + { "name": "oracle", "docs": ["Oracle pubkey"], "type": "publicKey" }, + { + "name": "binArrayBitmap", + "docs": ["Packed initialized bin array state"], + "type": { "array": ["u64", 16] } + }, + { + "name": "lastUpdatedAt", + "docs": ["Last time the pool fee parameter was updated"], + "type": "i64" + }, + { + "name": "whitelistedWallet", + "docs": ["Whitelisted wallet"], + "type": { "array": ["publicKey", 2] } + }, + { + "name": "baseKey", + "docs": ["Base keypair. Only required for permission pair"], + "type": "publicKey" + }, + { + "name": "activationSlot", + "docs": [ + "Slot to enable the pair. Only applicable for permission pair." + ], + "type": "u64" + }, + { + "name": "swapCapDeactivateSlot", + "docs": [ + "Last slot until pool remove max_swapped_amount for buying" + ], + "type": "u64" + }, + { + "name": "maxSwappedAmount", + "docs": [ + "Max X swapped amount user can swap from y to x between activation_slot and last_slot" + ], + "type": "u64" + }, + { + "name": "lockDurationsInSlot", + "docs": [ + "Liquidity lock duration for positions which created before activate. Only applicable for permission pair." + ], + "type": "u64" + }, + { "name": "creator", "docs": ["Pool creator"], "type": "publicKey" }, + { + "name": "reserved", + "docs": ["Reserved space for future use"], + "type": { "array": ["u8", 24] } + } + ] + } + }, + { + "name": "Oracle", + "type": { + "kind": "struct", + "fields": [ + { + "name": "idx", + "docs": ["Index of latest observation slot"], + "type": "u64" + }, + { + "name": "activeSize", + "docs": [ + "Size of active sample. Active sample is initialized observation." + ], + "type": "u64" + }, + { + "name": "length", + "docs": ["Number of observations"], + "type": "u64" + } + ] + } + }, + { + "name": "Position", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lbPair", + "docs": ["The LB pair of this position"], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "Owner of the position. Client rely on this to to fetch their positions." + ], + "type": "publicKey" + }, + { + "name": "liquidityShares", + "docs": [ + "Liquidity shares of this position in bins (lower_bin_id <-> upper_bin_id). This is the same as LP concept." + ], + "type": { "array": ["u64", 70] } + }, + { + "name": "rewardInfos", + "docs": ["Farming reward information"], + "type": { "array": [{ "defined": "UserRewardInfo" }, 70] } + }, + { + "name": "feeInfos", + "docs": ["Swap fee to claim information"], + "type": { "array": [{ "defined": "FeeInfo" }, 70] } + }, + { "name": "lowerBinId", "docs": ["Lower bin ID"], "type": "i32" }, + { "name": "upperBinId", "docs": ["Upper bin ID"], "type": "i32" }, + { + "name": "lastUpdatedAt", + "docs": ["Last updated timestamp"], + "type": "i64" + }, + { + "name": "totalClaimedFeeXAmount", + "docs": ["Total claimed token fee X"], + "type": "u64" + }, + { + "name": "totalClaimedFeeYAmount", + "docs": ["Total claimed token fee Y"], + "type": "u64" + }, + { + "name": "totalClaimedRewards", + "docs": ["Total claimed rewards"], + "type": { "array": ["u64", 2] } + }, + { + "name": "reserved", + "docs": ["Reserved space for future use"], + "type": { "array": ["u8", 160] } + } + ] + } + }, + { + "name": "PositionV2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lbPair", + "docs": ["The LB pair of this position"], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "Owner of the position. Client rely on this to to fetch their positions." + ], + "type": "publicKey" + }, + { + "name": "liquidityShares", + "docs": [ + "Liquidity shares of this position in bins (lower_bin_id <-> upper_bin_id). This is the same as LP concept." + ], + "type": { "array": ["u128", 70] } + }, + { + "name": "rewardInfos", + "docs": ["Farming reward information"], + "type": { "array": [{ "defined": "UserRewardInfo" }, 70] } + }, + { + "name": "feeInfos", + "docs": ["Swap fee to claim information"], + "type": { "array": [{ "defined": "FeeInfo" }, 70] } + }, + { "name": "lowerBinId", "docs": ["Lower bin ID"], "type": "i32" }, + { "name": "upperBinId", "docs": ["Upper bin ID"], "type": "i32" }, + { + "name": "lastUpdatedAt", + "docs": ["Last updated timestamp"], + "type": "i64" + }, + { + "name": "totalClaimedFeeXAmount", + "docs": ["Total claimed token fee X"], + "type": "u64" + }, + { + "name": "totalClaimedFeeYAmount", + "docs": ["Total claimed token fee Y"], + "type": "u64" + }, + { + "name": "totalClaimedRewards", + "docs": ["Total claimed rewards"], + "type": { "array": ["u64", 2] } + }, + { + "name": "operator", + "docs": ["Operator of position"], + "type": "publicKey" + }, + { + "name": "lockReleaseSlot", + "docs": ["Slot which the locked liquidity can be withdraw"], + "type": "u64" + }, + { + "name": "subjectedToBootstrapLiquidityLocking", + "docs": [ + "Is the position subjected to liquidity locking for the launch pool." + ], + "type": "u8" + }, + { + "name": "feeOwner", + "docs": [ + "Address is able to claim fee in this position, only valid for bootstrap_liquidity_position" + ], + "type": "publicKey" + }, + { + "name": "reserved", + "docs": ["Reserved space for future use"], + "type": { "array": ["u8", 87] } + } + ] + } + }, + { + "name": "PresetParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "docs": ["Bin step. Represent the price increment / decrement."], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "minBinId", + "docs": [ + "Min bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "Max bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + } + ] + } + } + ], + "types": [ + { + "name": "LiquidityParameterByStrategyOneSide", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount", + "docs": ["Amount of X token or Y token to deposit"], + "type": "u64" + }, + { + "name": "activeId", + "docs": ["Active bin that integrator observe off-chain"], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": ["max active bin slippage allowed"], + "type": "i32" + }, + { + "name": "strategyParameters", + "docs": ["strategy parameters"], + "type": { "defined": "StrategyParameters" } + } + ] + } + }, + { + "name": "LiquidityParameterByStrategy", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": ["Amount of X token to deposit"], + "type": "u64" + }, + { + "name": "amountY", + "docs": ["Amount of Y token to deposit"], + "type": "u64" + }, + { + "name": "activeId", + "docs": ["Active bin that integrator observe off-chain"], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": ["max active bin slippage allowed"], + "type": "i32" + }, + { + "name": "strategyParameters", + "docs": ["strategy parameters"], + "type": { "defined": "StrategyParameters" } + } + ] + } + }, + { + "name": "StrategyParameters", + "type": { + "kind": "struct", + "fields": [ + { "name": "minBinId", "docs": ["min bin id"], "type": "i32" }, + { "name": "maxBinId", "docs": ["max bin id"], "type": "i32" }, + { + "name": "strategyType", + "docs": ["strategy type"], + "type": { "defined": "StrategyType" } + }, + { + "name": "parameteres", + "docs": ["parameters"], + "type": { "array": ["u8", 64] } + } + ] + } + }, + { + "name": "LiquidityOneSideParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount", + "docs": ["Amount of X token or Y token to deposit"], + "type": "u64" + }, + { + "name": "activeId", + "docs": ["Active bin that integrator observe off-chain"], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": ["max active bin slippage allowed"], + "type": "i32" + }, + { + "name": "binLiquidityDist", + "docs": ["Liquidity distribution to each bins"], + "type": { "vec": { "defined": "BinLiquidityDistributionByWeight" } } + } + ] + } + }, + { + "name": "BinLiquidityDistributionByWeight", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "docs": ["Define the bin ID wish to deposit to."], + "type": "i32" + }, + { + "name": "weight", + "docs": ["weight of liquidity distributed for this bin id"], + "type": "u16" + } + ] + } + }, + { + "name": "LiquidityParameterByWeight", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": ["Amount of X token to deposit"], + "type": "u64" + }, + { + "name": "amountY", + "docs": ["Amount of Y token to deposit"], + "type": "u64" + }, + { + "name": "activeId", + "docs": ["Active bin that integrator observe off-chain"], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": ["max active bin slippage allowed"], + "type": "i32" + }, + { + "name": "binLiquidityDist", + "docs": ["Liquidity distribution to each bins"], + "type": { "vec": { "defined": "BinLiquidityDistributionByWeight" } } + } + ] + } + }, + { + "name": "AddLiquiditySingleSidePreciseParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bins", + "type": { "vec": { "defined": "CompressedBinDepositAmount" } } + }, + { "name": "decompressMultiplier", "type": "u64" } + ] + } + }, + { + "name": "CompressedBinDepositAmount", + "type": { + "kind": "struct", + "fields": [ + { "name": "binId", "type": "i32" }, + { "name": "amount", "type": "u32" } + ] + } + }, + { + "name": "BinLiquidityDistribution", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "docs": ["Define the bin ID wish to deposit to."], + "type": "i32" + }, + { + "name": "distributionX", + "docs": [ + "DistributionX (or distributionY) is the percentages of amountX (or amountY) you want to add to each bin." + ], + "type": "u16" + }, + { + "name": "distributionY", + "docs": [ + "DistributionX (or distributionY) is the percentages of amountX (or amountY) you want to add to each bin." + ], + "type": "u16" + } + ] + } + }, + { + "name": "LiquidityParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": ["Amount of X token to deposit"], + "type": "u64" + }, + { + "name": "amountY", + "docs": ["Amount of Y token to deposit"], + "type": "u64" + }, + { + "name": "binLiquidityDist", + "docs": ["Liquidity distribution to each bins"], + "type": { "vec": { "defined": "BinLiquidityDistribution" } } + } + ] + } + }, + { + "name": "InitPermissionPairIx", + "type": { + "kind": "struct", + "fields": [ + { "name": "activeId", "type": "i32" }, + { "name": "binStep", "type": "u16" }, + { "name": "baseFactor", "type": "u16" }, + { "name": "minBinId", "type": "i32" }, + { "name": "maxBinId", "type": "i32" }, + { "name": "lockDurationInSlot", "type": "u64" } + ] + } + }, + { + "name": "InitPresetParametersIx", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "docs": ["Bin step. Represent the price increment / decrement."], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "minBinId", + "docs": [ + "Min bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "Max bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + } + ] + } + }, + { + "name": "BinLiquidityReduction", + "type": { + "kind": "struct", + "fields": [ + { "name": "binId", "type": "i32" }, + { "name": "bpsToRemove", "type": "u16" } + ] + } + }, + { + "name": "FeeParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": ["Base factor for base fee rate"], + "type": "u16" + } + ] + } + }, + { + "name": "Bin", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": [ + "Amount of token X in the bin. This already excluded protocol fees." + ], + "type": "u64" + }, + { + "name": "amountY", + "docs": [ + "Amount of token Y in the bin. This already excluded protocol fees." + ], + "type": "u64" + }, + { "name": "price", "docs": ["Bin price"], "type": "u128" }, + { + "name": "liquiditySupply", + "docs": [ + "Liquidities of the bin. This is the same as LP mint supply. q-number" + ], + "type": "u128" + }, + { + "name": "rewardPerTokenStored", + "docs": ["reward_a_per_token_stored"], + "type": { "array": ["u128", 2] } + }, + { + "name": "feeAmountXPerTokenStored", + "docs": ["Swap fee amount of token X per liquidity deposited."], + "type": "u128" + }, + { + "name": "feeAmountYPerTokenStored", + "docs": ["Swap fee amount of token Y per liquidity deposited."], + "type": "u128" + }, + { + "name": "amountXIn", + "docs": [ + "Total token X swap into the bin. Only used for tracking purpose." + ], + "type": "u128" + }, + { + "name": "amountYIn", + "docs": [ + "Total token Y swap into he bin. Only used for tracking purpose." + ], + "type": "u128" + } + ] + } + }, + { + "name": "ProtocolFee", + "type": { + "kind": "struct", + "fields": [ + { "name": "amountX", "type": "u64" }, + { "name": "amountY", "type": "u64" } + ] + } + }, + { + "name": "RewardInfo", + "docs": [ + "Stores the state relevant for tracking liquidity mining rewards" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint", + "docs": ["Reward token mint."], + "type": "publicKey" + }, + { + "name": "vault", + "docs": ["Reward vault token account."], + "type": "publicKey" + }, + { + "name": "funder", + "docs": ["Authority account that allows to fund rewards"], + "type": "publicKey" + }, + { + "name": "rewardDuration", + "docs": ["TODO check whether we need to store it in pool"], + "type": "u64" + }, + { + "name": "rewardDurationEnd", + "docs": ["TODO check whether we need to store it in pool"], + "type": "u64" + }, + { + "name": "rewardRate", + "docs": ["TODO check whether we need to store it in pool"], + "type": "u128" + }, + { + "name": "lastUpdateTime", + "docs": ["The last time reward states were updated."], + "type": "u64" + }, + { + "name": "cumulativeSecondsWithEmptyLiquidityReward", + "docs": [ + "Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window." + ], + "type": "u64" + } + ] + } + }, + { + "name": "Observation", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cumulativeActiveBinId", + "docs": ["Cumulative active bin ID"], + "type": "i128" + }, + { + "name": "createdAt", + "docs": ["Observation sample created timestamp"], + "type": "i64" + }, + { + "name": "lastUpdatedAt", + "docs": ["Observation sample last updated timestamp"], + "type": "i64" + } + ] + } + }, + { + "name": "StaticParameters", + "docs": ["Parameter that set by the protocol"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "minBinId", + "docs": [ + "Min bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "Max bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "padding", + "docs": ["Padding for bytemuck safe alignment"], + "type": { "array": ["u8", 6] } + } + ] + } + }, + { + "name": "VariableParameters", + "docs": ["Parameters that changes based on dynamic of the market"], + "type": { + "kind": "struct", + "fields": [ + { + "name": "volatilityAccumulator", + "docs": [ + "Volatility accumulator measure the number of bin crossed since reference bin ID. Normally (without filter period taken into consideration), reference bin ID is the active bin of last swap.", + "It affects the variable fee rate" + ], + "type": "u32" + }, + { + "name": "volatilityReference", + "docs": [ + "Volatility reference is decayed volatility accumulator. It is always <= volatility_accumulator" + ], + "type": "u32" + }, + { + "name": "indexReference", + "docs": ["Active bin id of last swap."], + "type": "i32" + }, + { + "name": "padding", + "docs": ["Padding for bytemuck safe alignment"], + "type": { "array": ["u8", 4] } + }, + { + "name": "lastUpdateTimestamp", + "docs": ["Last timestamp the variable parameters was updated"], + "type": "i64" + }, + { + "name": "padding1", + "docs": ["Padding for bytemuck safe alignment"], + "type": { "array": ["u8", 8] } + } + ] + } + }, + { + "name": "FeeInfo", + "type": { + "kind": "struct", + "fields": [ + { "name": "feeXPerTokenComplete", "type": "u128" }, + { "name": "feeYPerTokenComplete", "type": "u128" }, + { "name": "feeXPending", "type": "u64" }, + { "name": "feeYPending", "type": "u64" } + ] + } + }, + { + "name": "UserRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewardPerTokenCompletes", + "type": { "array": ["u128", 2] } + }, + { "name": "rewardPendings", "type": { "array": ["u64", 2] } } + ] + } + }, + { + "name": "StrategyType", + "type": { + "kind": "enum", + "variants": [ + { "name": "SpotOneSide" }, + { "name": "CurveOneSide" }, + { "name": "BidAskOneSide" }, + { "name": "SpotBalanced" }, + { "name": "CurveBalanced" }, + { "name": "BidAskBalanced" }, + { "name": "SpotImBalanced" }, + { "name": "CurveImBalanced" }, + { "name": "BidAskImBalanced" } + ] + } + }, + { + "name": "Rounding", + "type": { + "kind": "enum", + "variants": [{ "name": "Up" }, { "name": "Down" }] + } + }, + { + "name": "LayoutVersion", + "docs": ["Layout version"], + "type": { + "kind": "enum", + "variants": [{ "name": "V0" }, { "name": "V1" }] + } + }, + { + "name": "PairType", + "docs": [ + "Type of the Pair. 0 = Permissionless, 1 = Permission. Putting 0 as permissionless for backward compatibility." + ], + "type": { + "kind": "enum", + "variants": [{ "name": "Permissionless" }, { "name": "Permission" }] + } + }, + { + "name": "PairStatus", + "docs": [ + "Pair status. 0 = Enabled, 1 = Disabled. Putting 0 as enabled for backward compatibility." + ], + "type": { + "kind": "enum", + "variants": [{ "name": "Enabled" }, { "name": "Disabled" }] + } + } + ], + "events": [ + { + "name": "CompositionFee", + "fields": [ + { "name": "from", "type": "publicKey", "index": false }, + { "name": "binId", "type": "i16", "index": false }, + { "name": "tokenXFeeAmount", "type": "u64", "index": false }, + { "name": "tokenYFeeAmount", "type": "u64", "index": false }, + { "name": "protocolTokenXFeeAmount", "type": "u64", "index": false }, + { "name": "protocolTokenYFeeAmount", "type": "u64", "index": false } + ] + }, + { + "name": "AddLiquidity", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "from", "type": "publicKey", "index": false }, + { "name": "position", "type": "publicKey", "index": false }, + { "name": "amounts", "type": { "array": ["u64", 2] }, "index": false }, + { "name": "activeBinId", "type": "i32", "index": false } + ] + }, + { + "name": "RemoveLiquidity", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "from", "type": "publicKey", "index": false }, + { "name": "position", "type": "publicKey", "index": false }, + { "name": "amounts", "type": { "array": ["u64", 2] }, "index": false }, + { "name": "activeBinId", "type": "i32", "index": false } + ] + }, + { + "name": "Swap", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "from", "type": "publicKey", "index": false }, + { "name": "startBinId", "type": "i32", "index": false }, + { "name": "endBinId", "type": "i32", "index": false }, + { "name": "amountIn", "type": "u64", "index": false }, + { "name": "amountOut", "type": "u64", "index": false }, + { "name": "swapForY", "type": "bool", "index": false }, + { "name": "fee", "type": "u64", "index": false }, + { "name": "protocolFee", "type": "u64", "index": false }, + { "name": "feeBps", "type": "u128", "index": false }, + { "name": "hostFee", "type": "u64", "index": false } + ] + }, + { + "name": "ClaimReward", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "position", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false }, + { "name": "rewardIndex", "type": "u64", "index": false }, + { "name": "totalReward", "type": "u64", "index": false } + ] + }, + { + "name": "FundReward", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "funder", "type": "publicKey", "index": false }, + { "name": "rewardIndex", "type": "u64", "index": false }, + { "name": "amount", "type": "u64", "index": false } + ] + }, + { + "name": "InitializeReward", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "rewardMint", "type": "publicKey", "index": false }, + { "name": "funder", "type": "publicKey", "index": false }, + { "name": "rewardIndex", "type": "u64", "index": false }, + { "name": "rewardDuration", "type": "u64", "index": false } + ] + }, + { + "name": "UpdateRewardDuration", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "rewardIndex", "type": "u64", "index": false }, + { "name": "oldRewardDuration", "type": "u64", "index": false }, + { "name": "newRewardDuration", "type": "u64", "index": false } + ] + }, + { + "name": "UpdateRewardFunder", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "rewardIndex", "type": "u64", "index": false }, + { "name": "oldFunder", "type": "publicKey", "index": false }, + { "name": "newFunder", "type": "publicKey", "index": false } + ] + }, + { + "name": "PositionClose", + "fields": [ + { "name": "position", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false } + ] + }, + { + "name": "ClaimFee", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "position", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false }, + { "name": "feeX", "type": "u64", "index": false }, + { "name": "feeY", "type": "u64", "index": false } + ] + }, + { + "name": "LbPairCreate", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "binStep", "type": "u16", "index": false }, + { "name": "tokenX", "type": "publicKey", "index": false }, + { "name": "tokenY", "type": "publicKey", "index": false } + ] + }, + { + "name": "PositionCreate", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "position", "type": "publicKey", "index": false }, + { "name": "owner", "type": "publicKey", "index": false } + ] + }, + { + "name": "FeeParameterUpdate", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "protocolShare", "type": "u16", "index": false }, + { "name": "baseFactor", "type": "u16", "index": false } + ] + }, + { + "name": "IncreaseObservation", + "fields": [ + { "name": "oracle", "type": "publicKey", "index": false }, + { "name": "newObservationLength", "type": "u64", "index": false } + ] + }, + { + "name": "WithdrawIneligibleReward", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "rewardMint", "type": "publicKey", "index": false }, + { "name": "amount", "type": "u64", "index": false } + ] + }, + { + "name": "UpdatePositionOperator", + "fields": [ + { "name": "position", "type": "publicKey", "index": false }, + { "name": "oldOperator", "type": "publicKey", "index": false }, + { "name": "newOperator", "type": "publicKey", "index": false } + ] + }, + { + "name": "UpdatePositionLockReleaseSlot", + "fields": [ + { "name": "position", "type": "publicKey", "index": false }, + { "name": "currentSlot", "type": "u64", "index": false }, + { "name": "newLockReleaseSlot", "type": "u64", "index": false }, + { "name": "oldLockReleaseSlot", "type": "u64", "index": false }, + { "name": "sender", "type": "publicKey", "index": false } + ] + }, + { + "name": "GoToABin", + "fields": [ + { "name": "lbPair", "type": "publicKey", "index": false }, + { "name": "fromBinId", "type": "i32", "index": false }, + { "name": "toBinId", "type": "i32", "index": false } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidStartBinIndex", + "msg": "Invalid start bin index" + }, + { "code": 6001, "name": "InvalidBinId", "msg": "Invalid bin id" }, + { "code": 6002, "name": "InvalidInput", "msg": "Invalid input data" }, + { + "code": 6003, + "name": "ExceededAmountSlippageTolerance", + "msg": "Exceeded amount slippage tolerance" + }, + { + "code": 6004, + "name": "ExceededBinSlippageTolerance", + "msg": "Exceeded bin slippage tolerance" + }, + { + "code": 6005, + "name": "CompositionFactorFlawed", + "msg": "Composition factor flawed" + }, + { "code": 6006, "name": "NonPresetBinStep", "msg": "Non preset bin step" }, + { "code": 6007, "name": "ZeroLiquidity", "msg": "Zero liquidity" }, + { "code": 6008, "name": "InvalidPosition", "msg": "Invalid position" }, + { "code": 6009, "name": "BinArrayNotFound", "msg": "Bin array not found" }, + { "code": 6010, "name": "InvalidTokenMint", "msg": "Invalid token mint" }, + { + "code": 6011, + "name": "InvalidAccountForSingleDeposit", + "msg": "Invalid account for single deposit" + }, + { + "code": 6012, + "name": "PairInsufficientLiquidity", + "msg": "Pair insufficient liquidity" + }, + { "code": 6013, "name": "InvalidFeeOwner", "msg": "Invalid fee owner" }, + { + "code": 6014, + "name": "InvalidFeeWithdrawAmount", + "msg": "Invalid fee withdraw amount" + }, + { "code": 6015, "name": "InvalidAdmin", "msg": "Invalid admin" }, + { "code": 6016, "name": "IdenticalFeeOwner", "msg": "Identical fee owner" }, + { "code": 6017, "name": "InvalidBps", "msg": "Invalid basis point" }, + { "code": 6018, "name": "MathOverflow", "msg": "Math operation overflow" }, + { "code": 6019, "name": "TypeCastFailed", "msg": "Type cast error" }, + { + "code": 6020, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6021, + "name": "InvalidRewardDuration", + "msg": "Invalid reward duration" + }, + { + "code": 6022, + "name": "RewardInitialized", + "msg": "Reward already initialized" + }, + { + "code": 6023, + "name": "RewardUninitialized", + "msg": "Reward not initialized" + }, + { "code": 6024, "name": "IdenticalFunder", "msg": "Identical funder" }, + { + "code": 6025, + "name": "RewardCampaignInProgress", + "msg": "Reward campaign in progress" + }, + { + "code": 6026, + "name": "IdenticalRewardDuration", + "msg": "Reward duration is the same" + }, + { "code": 6027, "name": "InvalidBinArray", "msg": "Invalid bin array" }, + { + "code": 6028, + "name": "NonContinuousBinArrays", + "msg": "Bin arrays must be continuous" + }, + { + "code": 6029, + "name": "InvalidRewardVault", + "msg": "Invalid reward vault" + }, + { + "code": 6030, + "name": "NonEmptyPosition", + "msg": "Position is not empty" + }, + { + "code": 6031, + "name": "UnauthorizedAccess", + "msg": "Unauthorized access" + }, + { + "code": 6032, + "name": "InvalidFeeParameter", + "msg": "Invalid fee parameter" + }, + { "code": 6033, "name": "MissingOracle", "msg": "Missing oracle account" }, + { + "code": 6034, + "name": "InsufficientSample", + "msg": "Insufficient observation sample" + }, + { + "code": 6035, + "name": "InvalidLookupTimestamp", + "msg": "Invalid lookup timestamp" + }, + { + "code": 6036, + "name": "BitmapExtensionAccountIsNotProvided", + "msg": "Bitmap extension account is not provided" + }, + { + "code": 6037, + "name": "CannotFindNonZeroLiquidityBinArrayId", + "msg": "Cannot find non-zero liquidity binArrayId" + }, + { "code": 6038, "name": "BinIdOutOfBound", "msg": "Bin id out of bound" }, + { + "code": 6039, + "name": "InsufficientOutAmount", + "msg": "Insufficient amount in for minimum out" + }, + { + "code": 6040, + "name": "InvalidPositionWidth", + "msg": "Invalid position width" + }, + { + "code": 6041, + "name": "ExcessiveFeeUpdate", + "msg": "Excessive fee update" + }, + { "code": 6042, "name": "PoolDisabled", "msg": "Pool disabled" }, + { "code": 6043, "name": "InvalidPoolType", "msg": "Invalid pool type" }, + { + "code": 6044, + "name": "ExceedMaxWhitelist", + "msg": "Whitelist for wallet is full" + }, + { "code": 6045, "name": "InvalidIndex", "msg": "Invalid index" }, + { "code": 6046, "name": "RewardNotEnded", "msg": "Reward not ended" }, + { + "code": 6047, + "name": "MustWithdrawnIneligibleReward", + "msg": "Must withdraw ineligible reward" + }, + { + "code": 6048, + "name": "UnauthorizedAddress", + "msg": "Unauthorized address" + }, + { + "code": 6049, + "name": "OperatorsAreTheSame", + "msg": "Cannot update because operators are the same" + }, + { + "code": 6050, + "name": "WithdrawToWrongTokenAccount", + "msg": "Withdraw to wrong token account" + }, + { "code": 6051, "name": "WrongRentReceiver", "msg": "Wrong rent receiver" }, + { + "code": 6052, + "name": "AlreadyPassActivationSlot", + "msg": "Already activated" + }, + { + "code": 6053, + "name": "LastSlotCannotBeSmallerThanActivateSlot", + "msg": "Last slot cannot be smaller than activate slot" + }, + { + "code": 6054, + "name": "ExceedMaxSwappedAmount", + "msg": "Swapped amount is exceeded max swapped amount" + }, + { + "code": 6055, + "name": "InvalidStrategyParameters", + "msg": "Invalid strategy parameters" + }, + { "code": 6056, "name": "LiquidityLocked", "msg": "Liquidity locked" }, + { + "code": 6057, + "name": "InvalidLockReleaseSlot", + "msg": "Invalid lock release slot" + }, + { + "code": 6058, + "name": "BinRangeIsNotEmpty", + "msg": "Bin range is not empty" + } + ] +} diff --git a/idl/meteora_lb_clmm_090.json b/idl/meteora_lb_clmm_090.json new file mode 100644 index 0000000..052baa0 --- /dev/null +++ b/idl/meteora_lb_clmm_090.json @@ -0,0 +1,7369 @@ +{ + "version": "0.9.0", + "name": "lb_clmm", + "constants": [ + { + "name": "BASIS_POINT_MAX", + "type": "i32", + "value": "10000" + }, + { + "name": "MAX_BIN_PER_ARRAY", + "type": { + "defined": "usize" + }, + "value": "70" + }, + { + "name": "MAX_BIN_PER_POSITION", + "type": { + "defined": "usize" + }, + "value": "70" + }, + { + "name": "MAX_RESIZE_LENGTH", + "type": { + "defined": "usize" + }, + "value": "70" + }, + { + "name": "POSITION_MAX_LENGTH", + "type": { + "defined": "usize" + }, + "value": "1400" + }, + { + "name": "MIN_BIN_ID", + "type": "i32", + "value": "- 443636" + }, + { + "name": "MAX_BIN_ID", + "type": "i32", + "value": "443636" + }, + { + "name": "MAX_FEE_RATE", + "type": "u64", + "value": "100_000_000" + }, + { + "name": "FEE_PRECISION", + "type": "u64", + "value": "1_000_000_000" + }, + { + "name": "MAX_PROTOCOL_SHARE", + "type": "u16", + "value": "2_500" + }, + { + "name": "HOST_FEE_BPS", + "type": "u16", + "value": "2_000" + }, + { + "name": "NUM_REWARDS", + "type": { + "defined": "usize" + }, + "value": "2" + }, + { + "name": "MIN_REWARD_DURATION", + "type": "u64", + "value": "1" + }, + { + "name": "MAX_REWARD_DURATION", + "type": "u64", + "value": "31536000" + }, + { + "name": "EXTENSION_BINARRAY_BITMAP_SIZE", + "type": { + "defined": "usize" + }, + "value": "12" + }, + { + "name": "BIN_ARRAY_BITMAP_SIZE", + "type": "i32", + "value": "512" + }, + { + "name": "MAX_REWARD_BIN_SPLIT", + "type": { + "defined": "usize" + }, + "value": "15" + }, + { + "name": "ILM_PROTOCOL_SHARE", + "type": "u16", + "value": "2000" + }, + { + "name": "PROTOCOL_SHARE", + "type": "u16", + "value": "500" + }, + { + "name": "MAX_BIN_STEP", + "type": "u16", + "value": "400" + }, + { + "name": "MAX_BASE_FEE", + "type": "u128", + "value": "100_000_000" + }, + { + "name": "MIN_BASE_FEE", + "type": "u128", + "value": "100_000" + }, + { + "name": "MINIMUM_LIQUIDITY", + "type": "u128", + "value": "1_000_000" + }, + { + "name": "BIN_ARRAY", + "type": "bytes", + "value": "[98, 105, 110, 95, 97, 114, 114, 97, 121]" + }, + { + "name": "ORACLE", + "type": "bytes", + "value": "[111, 114, 97, 99, 108, 101]" + }, + { + "name": "BIN_ARRAY_BITMAP_SEED", + "type": "bytes", + "value": "[98, 105, 116, 109, 97, 112]" + }, + { + "name": "PRESET_PARAMETER", + "type": "bytes", + "value": "[112, 114, 101, 115, 101, 116, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114]" + }, + { + "name": "PRESET_PARAMETER2", + "type": "bytes", + "value": "[112, 114, 101, 115, 101, 116, 95, 112, 97, 114, 97, 109, 101, 116, 101, 114, 50]" + }, + { + "name": "POSITION", + "type": "bytes", + "value": "[112, 111, 115, 105, 116, 105, 111, 110]" + }, + { + "name": "CLAIM_PROTOCOL_FEE_OPERATOR", + "type": "bytes", + "value": "[99, 102, 95, 111, 112, 101, 114, 97, 116, 111, 114]" + } + ], + "instructions": [ + { + "name": "initializeLbPair", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenMintX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintY", + "isMut": false, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "presetParameter", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "activeId", + "type": "i32" + }, + { + "name": "binStep", + "type": "u16" + } + ] + }, + { + "name": "initializePermissionLbPair", + "accounts": [ + { + "name": "base", + "isMut": false, + "isSigner": true + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenMintX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintY", + "isMut": false, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenBadgeX", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenBadgeY", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenProgramX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramY", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "ixData", + "type": { + "defined": "InitPermissionPairIx" + } + } + ] + }, + { + "name": "initializeCustomizablePermissionlessLbPair", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenMintX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintY", + "isMut": false, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenX", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CustomizableParams" + } + } + ] + }, + { + "name": "initializeBinArrayBitmapExtension", + "accounts": [ + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "docs": [ + "Initialize an account to store if a bin array is initialized." + ] + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializeBinArray", + "accounts": [ + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "binArray", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "index", + "type": "i64" + } + ] + }, + { + "name": "addLiquidity", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameter" + } + } + ] + }, + { + "name": "addLiquidityByWeight", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameterByWeight" + } + } + ] + }, + { + "name": "addLiquidityByStrategy", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameterByStrategy" + } + } + ] + }, + { + "name": "addLiquidityByStrategyOneSide", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userToken", + "isMut": true, + "isSigner": false + }, + { + "name": "reserve", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameterByStrategyOneSide" + } + } + ] + }, + { + "name": "addLiquidityOneSide", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userToken", + "isMut": true, + "isSigner": false + }, + { + "name": "reserve", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityOneSideParameter" + } + } + ] + }, + { + "name": "removeLiquidity", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "binLiquidityRemoval", + "type": { + "vec": { + "defined": "BinLiquidityReduction" + } + } + } + ] + }, + { + "name": "initializePosition", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": true + }, + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "lowerBinId", + "type": "i32" + }, + { + "name": "width", + "type": "i32" + } + ] + }, + { + "name": "initializePositionPda", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "base", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": true, + "docs": [ + "owner" + ] + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "lowerBinId", + "type": "i32" + }, + { + "name": "width", + "type": "i32" + } + ] + }, + { + "name": "initializePositionByOperator", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "base", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "operator", + "isMut": false, + "isSigner": true, + "docs": [ + "operator" + ] + }, + { + "name": "operatorTokenX", + "isMut": false, + "isSigner": false + }, + { + "name": "ownerTokenX", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "lowerBinId", + "type": "i32" + }, + { + "name": "width", + "type": "i32" + }, + { + "name": "feeOwner", + "type": "publicKey" + }, + { + "name": "lockReleasePoint", + "type": "u64" + } + ] + }, + { + "name": "updatePositionOperator", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "operator", + "type": "publicKey" + } + ] + }, + { + "name": "swap", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "minAmountOut", + "type": "u64" + } + ] + }, + { + "name": "swapExactOut", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "maxInAmount", + "type": "u64" + }, + { + "name": "outAmount", + "type": "u64" + } + ] + }, + { + "name": "swapWithPriceImpact", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "activeId", + "type": { + "option": "i32" + } + }, + { + "name": "maxPriceImpactBps", + "type": "u16" + } + ] + }, + { + "name": "withdrawProtocolFee", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "receiverTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "receiverTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "claimFeeOperator", + "isMut": false, + "isSigner": false + }, + { + "name": "operator", + "isMut": false, + "isSigner": true, + "docs": [ + "operator" + ] + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountX", + "type": "u64" + }, + { + "name": "amountY", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "initializeReward", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadge", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "rewardDuration", + "type": "u64" + }, + { + "name": "funder", + "type": "publicKey" + } + ] + }, + { + "name": "fundReward", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": false, + "isSigner": true + }, + { + "name": "binArray", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "carryForward", + "type": "bool" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "updateRewardFunder", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "newFunder", + "type": "publicKey" + } + ] + }, + { + "name": "updateRewardDuration", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "binArray", + "isMut": true, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "newDuration", + "type": "u64" + } + ] + }, + { + "name": "claimReward", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "userTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + } + ] + }, + { + "name": "claimFee", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "closePosition", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateBaseFeeParameters", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeParameter", + "type": { + "defined": "BaseFeeParameter" + } + } + ] + }, + { + "name": "updateDynamicFeeParameters", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeParameter", + "type": { + "defined": "DynamicFeeParameter" + } + } + ] + }, + { + "name": "increaseOracleLength", + "accounts": [ + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "lengthToAdd", + "type": "u64" + } + ] + }, + { + "name": "initializePresetParameter", + "accounts": [ + { + "name": "presetParameter", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "ix", + "type": { + "defined": "InitPresetParametersIx" + } + } + ] + }, + { + "name": "closePresetParameter", + "accounts": [ + { + "name": "presetParameter", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "closePresetParameter2", + "accounts": [ + { + "name": "presetParameter", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "removeAllLiquidity", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPairStatus", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "status", + "type": "u8" + } + ] + }, + { + "name": "migratePosition", + "accounts": [ + { + "name": "positionV2", + "isMut": true, + "isSigner": true + }, + { + "name": "positionV1", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "migrateBinArray", + "accounts": [ + { + "name": "lbPair", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateFeesAndRewards", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": true + } + ], + "args": [] + }, + { + "name": "withdrawIneligibleReward", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": false, + "isSigner": true + }, + { + "name": "binArray", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "setActivationPoint", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "activationPoint", + "type": "u64" + } + ] + }, + { + "name": "removeLiquidityByRange", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "fromBinId", + "type": "i32" + }, + { + "name": "toBinId", + "type": "i32" + }, + { + "name": "bpsToRemove", + "type": "u16" + } + ] + }, + { + "name": "addLiquidityOneSidePrecise", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userToken", + "isMut": true, + "isSigner": false + }, + { + "name": "reserve", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "binArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "parameter", + "type": { + "defined": "AddLiquiditySingleSidePreciseParameter" + } + } + ] + }, + { + "name": "goToABin", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "fromBinArray", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "toBinArray", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "binId", + "type": "i32" + } + ] + }, + { + "name": "setPreActivationDuration", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "creator", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "preActivationDuration", + "type": "u64" + } + ] + }, + { + "name": "setPreActivationSwapAddress", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "creator", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "preActivationSwapAddress", + "type": "publicKey" + } + ] + }, + { + "name": "setPairStatusPermissionless", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "creator", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "status", + "type": "u8" + } + ] + }, + { + "name": "initializeTokenBadge", + "accounts": [ + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadge", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "createClaimProtocolFeeOperator", + "accounts": [ + { + "name": "claimFeeOperator", + "isMut": true, + "isSigner": false + }, + { + "name": "operator", + "isMut": false, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "closeClaimProtocolFeeOperator", + "accounts": [ + { + "name": "claimFeeOperator", + "isMut": true, + "isSigner": false + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": false, + "isSigner": true + } + ], + "args": [] + }, + { + "name": "initializePresetParameter2", + "accounts": [ + { + "name": "presetParameter", + "isMut": true, + "isSigner": false + }, + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "ix", + "type": { + "defined": "InitPresetParameters2Ix" + } + } + ] + }, + { + "name": "initializeLbPair2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenMintX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintY", + "isMut": false, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "presetParameter", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenBadgeX", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenBadgeY", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenProgramX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramY", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "InitializeLbPair2Params" + } + } + ] + }, + { + "name": "initializeCustomizablePermissionlessLbPair2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenMintX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintY", + "isMut": false, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenX", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenBadgeX", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenBadgeY", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "tokenProgramX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramY", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "params", + "type": { + "defined": "CustomizableParams" + } + } + ] + }, + { + "name": "claimFee2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramX", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramY", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "minBinId", + "type": "i32" + }, + { + "name": "maxBinId", + "type": "i32" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "claimReward2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "userTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u64" + }, + { + "name": "minBinId", + "type": "i32" + }, + { + "name": "maxBinId", + "type": "i32" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "addLiquidity2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameter" + } + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "addLiquidityByStrategy2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "LiquidityParameterByStrategy" + } + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "addLiquidityOneSidePrecise2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userToken", + "isMut": true, + "isSigner": false + }, + { + "name": "reserve", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityParameter", + "type": { + "defined": "AddLiquiditySingleSidePreciseParameter2" + } + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "removeLiquidity2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "binLiquidityRemoval", + "type": { + "vec": { + "defined": "BinLiquidityReduction" + } + } + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "removeLiquidityByRange2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "userTokenX", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenY", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "fromBinId", + "type": "i32" + }, + { + "name": "toBinId", + "type": "i32" + }, + { + "name": "bpsToRemove", + "type": "u16" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "swap2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "minAmountOut", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "swapExactOut2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "maxInAmount", + "type": "u64" + }, + { + "name": "outAmount", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "swapWithPriceImpact2", + "accounts": [ + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "binArrayBitmapExtension", + "isMut": false, + "isSigner": false, + "isOptional": true + }, + { + "name": "reserveX", + "isMut": true, + "isSigner": false + }, + { + "name": "reserveY", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenIn", + "isMut": true, + "isSigner": false + }, + { + "name": "userTokenOut", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenXMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYMint", + "isMut": false, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "hostFeeIn", + "isMut": true, + "isSigner": false, + "isOptional": true + }, + { + "name": "user", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenXProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenYProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "activeId", + "type": { + "option": "i32" + } + }, + { + "name": "maxPriceImpactBps", + "type": "u16" + }, + { + "name": "remainingAccountsInfo", + "type": { + "defined": "RemainingAccountsInfo" + } + } + ] + }, + { + "name": "closePosition2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateFeesAndReward2", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "lbPair", + "isMut": true, + "isSigner": false + }, + { + "name": "owner", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "minBinId", + "type": "i32" + }, + { + "name": "maxBinId", + "type": "i32" + } + ] + }, + { + "name": "closePositionIfEmpty", + "accounts": [ + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "sender", + "isMut": false, + "isSigner": true + }, + { + "name": "rentReceiver", + "isMut": true, + "isSigner": false + }, + { + "name": "eventAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "BinArrayBitmapExtension", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lbPair", + "type": "publicKey" + }, + { + "name": "positiveBinArrayBitmap", + "docs": [ + "Packed initialized bin array state for start_bin_index is positive" + ], + "type": { + "array": [ + { + "array": [ + "u64", + 8 + ] + }, + 12 + ] + } + }, + { + "name": "negativeBinArrayBitmap", + "docs": [ + "Packed initialized bin array state for start_bin_index is negative" + ], + "type": { + "array": [ + { + "array": [ + "u64", + 8 + ] + }, + 12 + ] + } + } + ] + } + }, + { + "name": "BinArray", + "docs": [ + "An account to contain a range of bin. For example: Bin 100 <-> 200.", + "For example:", + "BinArray index: 0 contains bin 0 <-> 599", + "index: 2 contains bin 600 <-> 1199, ..." + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "index", + "type": "i64" + }, + { + "name": "version", + "docs": [ + "Version of binArray" + ], + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "lbPair", + "type": "publicKey" + }, + { + "name": "bins", + "type": { + "array": [ + { + "defined": "Bin" + }, + 70 + ] + } + } + ] + } + }, + { + "name": "ClaimFeeOperator", + "docs": [ + "Parameter that set by the protocol" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "operator", + "docs": [ + "operator" + ], + "type": "publicKey" + }, + { + "name": "padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "LbPair", + "type": { + "kind": "struct", + "fields": [ + { + "name": "parameters", + "type": { + "defined": "StaticParameters" + } + }, + { + "name": "vParameters", + "type": { + "defined": "VariableParameters" + } + }, + { + "name": "bumpSeed", + "type": { + "array": [ + "u8", + 1 + ] + } + }, + { + "name": "binStepSeed", + "docs": [ + "Bin step signer seed" + ], + "type": { + "array": [ + "u8", + 2 + ] + } + }, + { + "name": "pairType", + "docs": [ + "Type of the pair" + ], + "type": "u8" + }, + { + "name": "activeId", + "docs": [ + "Active bin id" + ], + "type": "i32" + }, + { + "name": "binStep", + "docs": [ + "Bin step. Represent the price increment / decrement." + ], + "type": "u16" + }, + { + "name": "status", + "docs": [ + "Status of the pair. Check PairStatus enum." + ], + "type": "u8" + }, + { + "name": "requireBaseFactorSeed", + "docs": [ + "Require base factor seed" + ], + "type": "u8" + }, + { + "name": "baseFactorSeed", + "docs": [ + "Base factor seed" + ], + "type": { + "array": [ + "u8", + 2 + ] + } + }, + { + "name": "activationType", + "docs": [ + "Activation type" + ], + "type": "u8" + }, + { + "name": "creatorPoolOnOffControl", + "docs": [ + "Allow pool creator to enable/disable pool with restricted validation. Only applicable for customizable permissionless pair type." + ], + "type": "u8" + }, + { + "name": "tokenXMint", + "docs": [ + "Token X mint" + ], + "type": "publicKey" + }, + { + "name": "tokenYMint", + "docs": [ + "Token Y mint" + ], + "type": "publicKey" + }, + { + "name": "reserveX", + "docs": [ + "LB token X vault" + ], + "type": "publicKey" + }, + { + "name": "reserveY", + "docs": [ + "LB token Y vault" + ], + "type": "publicKey" + }, + { + "name": "protocolFee", + "docs": [ + "Uncollected protocol fee" + ], + "type": { + "defined": "ProtocolFee" + } + }, + { + "name": "padding1", + "docs": [ + "_padding_1, previous Fee owner, BE CAREFUL FOR TOMBSTONE WHEN REUSE !!" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "rewardInfos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": "RewardInfo" + }, + 2 + ] + } + }, + { + "name": "oracle", + "docs": [ + "Oracle pubkey" + ], + "type": "publicKey" + }, + { + "name": "binArrayBitmap", + "docs": [ + "Packed initialized bin array state" + ], + "type": { + "array": [ + "u64", + 16 + ] + } + }, + { + "name": "lastUpdatedAt", + "docs": [ + "Last time the pool fee parameter was updated" + ], + "type": "i64" + }, + { + "name": "padding2", + "docs": [ + "_padding_2, previous whitelisted_wallet, BE CAREFUL FOR TOMBSTONE WHEN REUSE !!" + ], + "type": { + "array": [ + "u8", + 32 + ] + } + }, + { + "name": "preActivationSwapAddress", + "docs": [ + "Address allowed to swap when the current point is greater than or equal to the pre-activation point. The pre-activation point is calculated as `activation_point - pre_activation_duration`." + ], + "type": "publicKey" + }, + { + "name": "baseKey", + "docs": [ + "Base keypair. Only required for permission pair" + ], + "type": "publicKey" + }, + { + "name": "activationPoint", + "docs": [ + "Time point to enable the pair. Only applicable for permission pair." + ], + "type": "u64" + }, + { + "name": "preActivationDuration", + "docs": [ + "Duration before activation activation_point. Used to calculate pre-activation time point for pre_activation_swap_address" + ], + "type": "u64" + }, + { + "name": "padding3", + "docs": [ + "_padding 3 is reclaimed free space from swap_cap_deactivate_point and swap_cap_amount before, BE CAREFUL FOR TOMBSTONE WHEN REUSE !!" + ], + "type": { + "array": [ + "u8", + 8 + ] + } + }, + { + "name": "padding4", + "docs": [ + "_padding_4, previous lock_duration, BE CAREFUL FOR TOMBSTONE WHEN REUSE !!" + ], + "type": "u64" + }, + { + "name": "creator", + "docs": [ + "Pool creator" + ], + "type": "publicKey" + }, + { + "name": "tokenMintXProgramFlag", + "docs": [ + "token_mint_x_program_flag" + ], + "type": "u8" + }, + { + "name": "tokenMintYProgramFlag", + "docs": [ + "token_mint_y_program_flag" + ], + "type": "u8" + }, + { + "name": "reserved", + "docs": [ + "Reserved space for future use" + ], + "type": { + "array": [ + "u8", + 22 + ] + } + } + ] + } + }, + { + "name": "Oracle", + "type": { + "kind": "struct", + "fields": [ + { + "name": "idx", + "docs": [ + "Index of latest observation" + ], + "type": "u64" + }, + { + "name": "activeSize", + "docs": [ + "Size of active sample. Active sample is initialized observation." + ], + "type": "u64" + }, + { + "name": "length", + "docs": [ + "Number of observations" + ], + "type": "u64" + } + ] + } + }, + { + "name": "Position", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lbPair", + "docs": [ + "The LB pair of this position" + ], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "Owner of the position. Client rely on this to to fetch their positions." + ], + "type": "publicKey" + }, + { + "name": "liquidityShares", + "docs": [ + "Liquidity shares of this position in bins (lower_bin_id <-> upper_bin_id). This is the same as LP concept." + ], + "type": { + "array": [ + "u64", + 70 + ] + } + }, + { + "name": "rewardInfos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": "UserRewardInfo" + }, + 70 + ] + } + }, + { + "name": "feeInfos", + "docs": [ + "Swap fee to claim information" + ], + "type": { + "array": [ + { + "defined": "FeeInfo" + }, + 70 + ] + } + }, + { + "name": "lowerBinId", + "docs": [ + "Lower bin ID" + ], + "type": "i32" + }, + { + "name": "upperBinId", + "docs": [ + "Upper bin ID" + ], + "type": "i32" + }, + { + "name": "lastUpdatedAt", + "docs": [ + "Last updated timestamp" + ], + "type": "i64" + }, + { + "name": "totalClaimedFeeXAmount", + "docs": [ + "Total claimed token fee X" + ], + "type": "u64" + }, + { + "name": "totalClaimedFeeYAmount", + "docs": [ + "Total claimed token fee Y" + ], + "type": "u64" + }, + { + "name": "totalClaimedRewards", + "docs": [ + "Total claimed rewards" + ], + "type": { + "array": [ + "u64", + 2 + ] + } + }, + { + "name": "reserved", + "docs": [ + "Reserved space for future use" + ], + "type": { + "array": [ + "u8", + 160 + ] + } + } + ] + } + }, + { + "name": "PositionV2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lbPair", + "docs": [ + "The LB pair of this position" + ], + "type": "publicKey" + }, + { + "name": "owner", + "docs": [ + "Owner of the position. Client rely on this to to fetch their positions." + ], + "type": "publicKey" + }, + { + "name": "liquidityShares", + "docs": [ + "Liquidity shares of this position in bins (lower_bin_id <-> upper_bin_id). This is the same as LP concept." + ], + "type": { + "array": [ + "u128", + 70 + ] + } + }, + { + "name": "rewardInfos", + "docs": [ + "Farming reward information" + ], + "type": { + "array": [ + { + "defined": "UserRewardInfo" + }, + 70 + ] + } + }, + { + "name": "feeInfos", + "docs": [ + "Swap fee to claim information" + ], + "type": { + "array": [ + { + "defined": "FeeInfo" + }, + 70 + ] + } + }, + { + "name": "lowerBinId", + "docs": [ + "Lower bin ID" + ], + "type": "i32" + }, + { + "name": "upperBinId", + "docs": [ + "Upper bin ID" + ], + "type": "i32" + }, + { + "name": "lastUpdatedAt", + "docs": [ + "Last updated timestamp" + ], + "type": "i64" + }, + { + "name": "totalClaimedFeeXAmount", + "docs": [ + "Total claimed token fee X" + ], + "type": "u64" + }, + { + "name": "totalClaimedFeeYAmount", + "docs": [ + "Total claimed token fee Y" + ], + "type": "u64" + }, + { + "name": "totalClaimedRewards", + "docs": [ + "Total claimed rewards" + ], + "type": { + "array": [ + "u64", + 2 + ] + } + }, + { + "name": "operator", + "docs": [ + "Operator of position" + ], + "type": "publicKey" + }, + { + "name": "lockReleasePoint", + "docs": [ + "Time point which the locked liquidity can be withdraw" + ], + "type": "u64" + }, + { + "name": "padding0", + "docs": [ + "_padding_0, previous subjected_to_bootstrap_liquidity_locking, BE CAREFUL FOR TOMBSTONE WHEN REUSE !!" + ], + "type": "u8" + }, + { + "name": "feeOwner", + "docs": [ + "Address is able to claim fee in this position, only valid for bootstrap_liquidity_position" + ], + "type": "publicKey" + }, + { + "name": "reserved", + "docs": [ + "Reserved space for future use" + ], + "type": { + "array": [ + "u8", + 87 + ] + } + } + ] + } + }, + { + "name": "PresetParameter2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "docs": [ + "Bin step. Represent the price increment / decrement." + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step * 10 * 10^base_fee_power_factor" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "index", + "docs": [ + "index" + ], + "type": "u16" + }, + { + "name": "baseFeePowerFactor", + "docs": [ + "Base fee power factor" + ], + "type": "u8" + }, + { + "name": "padding0", + "docs": [ + "Padding 0 for future use" + ], + "type": "u8" + }, + { + "name": "padding1", + "docs": [ + "Padding 1 for future use" + ], + "type": { + "array": [ + "u64", + 20 + ] + } + } + ] + } + }, + { + "name": "PresetParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "docs": [ + "Bin step. Represent the price increment / decrement." + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step * 10 * 10^base_fee_power_factor" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "minBinId", + "docs": [ + "Min bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "Max bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + } + ] + } + }, + { + "name": "TokenBadge", + "docs": [ + "Parameter that set by the protocol" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "tokenMint", + "docs": [ + "token mint" + ], + "type": "publicKey" + }, + { + "name": "padding", + "docs": [ + "Reserve" + ], + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + } + ], + "types": [ + { + "name": "InitPresetParameters2Ix", + "type": { + "kind": "struct", + "fields": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "binStep", + "docs": [ + "Bin step. Represent the price increment / decrement." + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step * 10 * 10^base_fee_power_factor" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "baseFeePowerFactor", + "docs": [ + "Base fee power factor" + ], + "type": "u8" + } + ] + } + }, + { + "name": "InitPresetParametersIx", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binStep", + "docs": [ + "Bin step. Represent the price increment / decrement." + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step * 10 * 10^base_fee_power_factor" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + } + ] + } + }, + { + "name": "BaseFeeParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Base factor for base fee rate" + ], + "type": "u16" + }, + { + "name": "baseFeePowerFactor", + "docs": [ + "Base fee power factor" + ], + "type": "u8" + } + ] + } + }, + { + "name": "DynamicFeeParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + } + ] + } + }, + { + "name": "LiquidityParameterByStrategyOneSide", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount", + "docs": [ + "Amount of X token or Y token to deposit" + ], + "type": "u64" + }, + { + "name": "activeId", + "docs": [ + "Active bin that integrator observe off-chain" + ], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": [ + "max active bin slippage allowed" + ], + "type": "i32" + }, + { + "name": "strategyParameters", + "docs": [ + "strategy parameters" + ], + "type": { + "defined": "StrategyParameters" + } + } + ] + } + }, + { + "name": "LiquidityParameterByStrategy", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": [ + "Amount of X token to deposit" + ], + "type": "u64" + }, + { + "name": "amountY", + "docs": [ + "Amount of Y token to deposit" + ], + "type": "u64" + }, + { + "name": "activeId", + "docs": [ + "Active bin that integrator observe off-chain" + ], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": [ + "max active bin slippage allowed" + ], + "type": "i32" + }, + { + "name": "strategyParameters", + "docs": [ + "strategy parameters" + ], + "type": { + "defined": "StrategyParameters" + } + } + ] + } + }, + { + "name": "StrategyParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "minBinId", + "docs": [ + "min bin id" + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "max bin id" + ], + "type": "i32" + }, + { + "name": "strategyType", + "docs": [ + "strategy type" + ], + "type": { + "defined": "StrategyType" + } + }, + { + "name": "parameteres", + "docs": [ + "parameters" + ], + "type": { + "array": [ + "u8", + 64 + ] + } + } + ] + } + }, + { + "name": "LiquidityOneSideParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount", + "docs": [ + "Amount of X token or Y token to deposit" + ], + "type": "u64" + }, + { + "name": "activeId", + "docs": [ + "Active bin that integrator observe off-chain" + ], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": [ + "max active bin slippage allowed" + ], + "type": "i32" + }, + { + "name": "binLiquidityDist", + "docs": [ + "Liquidity distribution to each bins" + ], + "type": { + "vec": { + "defined": "BinLiquidityDistributionByWeight" + } + } + } + ] + } + }, + { + "name": "BinLiquidityDistributionByWeight", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "docs": [ + "Define the bin ID wish to deposit to." + ], + "type": "i32" + }, + { + "name": "weight", + "docs": [ + "weight of liquidity distributed for this bin id" + ], + "type": "u16" + } + ] + } + }, + { + "name": "LiquidityParameterByWeight", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": [ + "Amount of X token to deposit" + ], + "type": "u64" + }, + { + "name": "amountY", + "docs": [ + "Amount of Y token to deposit" + ], + "type": "u64" + }, + { + "name": "activeId", + "docs": [ + "Active bin that integrator observe off-chain" + ], + "type": "i32" + }, + { + "name": "maxActiveBinSlippage", + "docs": [ + "max active bin slippage allowed" + ], + "type": "i32" + }, + { + "name": "binLiquidityDist", + "docs": [ + "Liquidity distribution to each bins" + ], + "type": { + "vec": { + "defined": "BinLiquidityDistributionByWeight" + } + } + } + ] + } + }, + { + "name": "AddLiquiditySingleSidePreciseParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bins", + "type": { + "vec": { + "defined": "CompressedBinDepositAmount" + } + } + }, + { + "name": "decompressMultiplier", + "type": "u64" + } + ] + } + }, + { + "name": "CompressedBinDepositAmount", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "type": "i32" + }, + { + "name": "amount", + "type": "u32" + } + ] + } + }, + { + "name": "BinLiquidityDistribution", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "docs": [ + "Define the bin ID wish to deposit to." + ], + "type": "i32" + }, + { + "name": "distributionX", + "docs": [ + "DistributionX (or distributionY) is the percentages of amountX (or amountY) you want to add to each bin." + ], + "type": "u16" + }, + { + "name": "distributionY", + "docs": [ + "DistributionX (or distributionY) is the percentages of amountX (or amountY) you want to add to each bin." + ], + "type": "u16" + } + ] + } + }, + { + "name": "LiquidityParameter", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": [ + "Amount of X token to deposit" + ], + "type": "u64" + }, + { + "name": "amountY", + "docs": [ + "Amount of Y token to deposit" + ], + "type": "u64" + }, + { + "name": "binLiquidityDist", + "docs": [ + "Liquidity distribution to each bins" + ], + "type": { + "vec": { + "defined": "BinLiquidityDistribution" + } + } + } + ] + } + }, + { + "name": "CustomizableParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "activeId", + "docs": [ + "Pool price" + ], + "type": "i32" + }, + { + "name": "binStep", + "docs": [ + "Bin step" + ], + "type": "u16" + }, + { + "name": "baseFactor", + "docs": [ + "Base factor" + ], + "type": "u16" + }, + { + "name": "activationType", + "docs": [ + "Activation type. 0 = Slot, 1 = Time. Check ActivationType enum" + ], + "type": "u8" + }, + { + "name": "hasAlphaVault", + "docs": [ + "Whether the pool has an alpha vault" + ], + "type": "bool" + }, + { + "name": "activationPoint", + "docs": [ + "Decide when does the pool start trade. None = Now" + ], + "type": { + "option": "u64" + } + }, + { + "name": "creatorPoolOnOffControl", + "docs": [ + "Pool creator have permission to enable/disable pool with restricted program validation. Only applicable for customizable permissionless pool." + ], + "type": "bool" + }, + { + "name": "baseFeePowerFactor", + "docs": [ + "Base fee power factor" + ], + "type": "u8" + }, + { + "name": "padding", + "docs": [ + "Padding, for future use" + ], + "type": { + "array": [ + "u8", + 62 + ] + } + } + ] + } + }, + { + "name": "InitPermissionPairIx", + "type": { + "kind": "struct", + "fields": [ + { + "name": "activeId", + "type": "i32" + }, + { + "name": "binStep", + "type": "u16" + }, + { + "name": "baseFactor", + "type": "u16" + }, + { + "name": "baseFeePowerFactor", + "type": "u8" + }, + { + "name": "activationType", + "type": "u8" + }, + { + "name": "protocolShare", + "type": "u16" + } + ] + } + }, + { + "name": "AddLiquiditySingleSidePreciseParameter2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bins", + "type": { + "vec": { + "defined": "CompressedBinDepositAmount" + } + } + }, + { + "name": "decompressMultiplier", + "type": "u64" + }, + { + "name": "maxAmount", + "type": "u64" + } + ] + } + }, + { + "name": "CompressedBinDepositAmount2", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "type": "i32" + }, + { + "name": "amount", + "type": "u32" + } + ] + } + }, + { + "name": "InitializeLbPair2Params", + "type": { + "kind": "struct", + "fields": [ + { + "name": "activeId", + "docs": [ + "Pool price" + ], + "type": "i32" + }, + { + "name": "padding", + "docs": [ + "Padding, for future use" + ], + "type": { + "array": [ + "u8", + 96 + ] + } + } + ] + } + }, + { + "name": "BinLiquidityReduction", + "type": { + "kind": "struct", + "fields": [ + { + "name": "binId", + "type": "i32" + }, + { + "name": "bpsToRemove", + "type": "u16" + } + ] + } + }, + { + "name": "Bin", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "docs": [ + "Amount of token X in the bin. This already excluded protocol fees." + ], + "type": "u64" + }, + { + "name": "amountY", + "docs": [ + "Amount of token Y in the bin. This already excluded protocol fees." + ], + "type": "u64" + }, + { + "name": "price", + "docs": [ + "Bin price" + ], + "type": "u128" + }, + { + "name": "liquiditySupply", + "docs": [ + "Liquidities of the bin. This is the same as LP mint supply. q-number" + ], + "type": "u128" + }, + { + "name": "rewardPerTokenStored", + "docs": [ + "reward_a_per_token_stored" + ], + "type": { + "array": [ + "u128", + 2 + ] + } + }, + { + "name": "feeAmountXPerTokenStored", + "docs": [ + "Swap fee amount of token X per liquidity deposited." + ], + "type": "u128" + }, + { + "name": "feeAmountYPerTokenStored", + "docs": [ + "Swap fee amount of token Y per liquidity deposited." + ], + "type": "u128" + }, + { + "name": "amountXIn", + "docs": [ + "Total token X swap into the bin. Only used for tracking purpose." + ], + "type": "u128" + }, + { + "name": "amountYIn", + "docs": [ + "Total token Y swap into he bin. Only used for tracking purpose." + ], + "type": "u128" + } + ] + } + }, + { + "name": "ProtocolFee", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountX", + "type": "u64" + }, + { + "name": "amountY", + "type": "u64" + } + ] + } + }, + { + "name": "RewardInfo", + "docs": [ + "Stores the state relevant for tracking liquidity mining rewards" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint", + "docs": [ + "Reward token mint." + ], + "type": "publicKey" + }, + { + "name": "vault", + "docs": [ + "Reward vault token account." + ], + "type": "publicKey" + }, + { + "name": "funder", + "docs": [ + "Authority account that allows to fund rewards" + ], + "type": "publicKey" + }, + { + "name": "rewardDuration", + "docs": [ + "TODO check whether we need to store it in pool" + ], + "type": "u64" + }, + { + "name": "rewardDurationEnd", + "docs": [ + "TODO check whether we need to store it in pool" + ], + "type": "u64" + }, + { + "name": "rewardRate", + "docs": [ + "TODO check whether we need to store it in pool" + ], + "type": "u128" + }, + { + "name": "lastUpdateTime", + "docs": [ + "The last time reward states were updated." + ], + "type": "u64" + }, + { + "name": "cumulativeSecondsWithEmptyLiquidityReward", + "docs": [ + "Accumulated seconds where when farm distribute rewards, but the bin is empty. The reward will be accumulated for next reward time window." + ], + "type": "u64" + } + ] + } + }, + { + "name": "Observation", + "type": { + "kind": "struct", + "fields": [ + { + "name": "cumulativeActiveBinId", + "docs": [ + "Cumulative active bin ID" + ], + "type": "i128" + }, + { + "name": "createdAt", + "docs": [ + "Observation sample created timestamp" + ], + "type": "i64" + }, + { + "name": "lastUpdatedAt", + "docs": [ + "Observation sample last updated timestamp" + ], + "type": "i64" + } + ] + } + }, + { + "name": "StaticParameters", + "docs": [ + "Parameter that set by the protocol" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "baseFactor", + "docs": [ + "Used for base fee calculation. base_fee_rate = base_factor * bin_step * 10 * 10^base_fee_power_factor" + ], + "type": "u16" + }, + { + "name": "filterPeriod", + "docs": [ + "Filter period determine high frequency trading time window." + ], + "type": "u16" + }, + { + "name": "decayPeriod", + "docs": [ + "Decay period determine when the volatile fee start decay / decrease." + ], + "type": "u16" + }, + { + "name": "reductionFactor", + "docs": [ + "Reduction factor controls the volatile fee rate decrement rate." + ], + "type": "u16" + }, + { + "name": "variableFeeControl", + "docs": [ + "Used to scale the variable fee component depending on the dynamic of the market" + ], + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "docs": [ + "Maximum number of bin crossed can be accumulated. Used to cap volatile fee rate." + ], + "type": "u32" + }, + { + "name": "minBinId", + "docs": [ + "Min bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "maxBinId", + "docs": [ + "Max bin id supported by the pool based on the configured bin step." + ], + "type": "i32" + }, + { + "name": "protocolShare", + "docs": [ + "Portion of swap fees retained by the protocol by controlling protocol_share parameter. protocol_swap_fee = protocol_share * total_swap_fee" + ], + "type": "u16" + }, + { + "name": "baseFeePowerFactor", + "docs": [ + "Base fee power factor" + ], + "type": "u8" + }, + { + "name": "padding", + "docs": [ + "Padding for bytemuck safe alignment" + ], + "type": { + "array": [ + "u8", + 5 + ] + } + } + ] + } + }, + { + "name": "VariableParameters", + "docs": [ + "Parameters that changes based on dynamic of the market" + ], + "type": { + "kind": "struct", + "fields": [ + { + "name": "volatilityAccumulator", + "docs": [ + "Volatility accumulator measure the number of bin crossed since reference bin ID. Normally (without filter period taken into consideration), reference bin ID is the active bin of last swap.", + "It affects the variable fee rate" + ], + "type": "u32" + }, + { + "name": "volatilityReference", + "docs": [ + "Volatility reference is decayed volatility accumulator. It is always <= volatility_accumulator" + ], + "type": "u32" + }, + { + "name": "indexReference", + "docs": [ + "Active bin id of last swap." + ], + "type": "i32" + }, + { + "name": "padding", + "docs": [ + "Padding for bytemuck safe alignment" + ], + "type": { + "array": [ + "u8", + 4 + ] + } + }, + { + "name": "lastUpdateTimestamp", + "docs": [ + "Last timestamp the variable parameters was updated" + ], + "type": "i64" + }, + { + "name": "padding1", + "docs": [ + "Padding for bytemuck safe alignment" + ], + "type": { + "array": [ + "u8", + 8 + ] + } + } + ] + } + }, + { + "name": "FeeInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "feeXPerTokenComplete", + "type": "u128" + }, + { + "name": "feeYPerTokenComplete", + "type": "u128" + }, + { + "name": "feeXPending", + "type": "u64" + }, + { + "name": "feeYPending", + "type": "u64" + } + ] + } + }, + { + "name": "UserRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewardPerTokenCompletes", + "type": { + "array": [ + "u128", + 2 + ] + } + }, + { + "name": "rewardPendings", + "type": { + "array": [ + "u64", + 2 + ] + } + } + ] + } + }, + { + "name": "RemainingAccountsSlice", + "type": { + "kind": "struct", + "fields": [ + { + "name": "accountsType", + "type": { + "defined": "AccountsType" + } + }, + { + "name": "length", + "type": "u8" + } + ] + } + }, + { + "name": "RemainingAccountsInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "slices", + "type": { + "vec": { + "defined": "RemainingAccountsSlice" + } + } + } + ] + } + }, + { + "name": "StrategyType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "SpotOneSide" + }, + { + "name": "CurveOneSide" + }, + { + "name": "BidAskOneSide" + }, + { + "name": "SpotBalanced" + }, + { + "name": "CurveBalanced" + }, + { + "name": "BidAskBalanced" + }, + { + "name": "SpotImBalanced" + }, + { + "name": "CurveImBalanced" + }, + { + "name": "BidAskImBalanced" + } + ] + } + }, + { + "name": "Rounding", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Up" + }, + { + "name": "Down" + } + ] + } + }, + { + "name": "ActivationType", + "docs": [ + "Type of the activation" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Slot" + }, + { + "name": "Timestamp" + } + ] + } + }, + { + "name": "LayoutVersion", + "docs": [ + "Layout version" + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "V0" + }, + { + "name": "V1" + } + ] + } + }, + { + "name": "PairType", + "docs": [ + "Type of the Pair. 0 = Permissionless, 1 = Permission, 2 = CustomizablePermissionless. Putting 0 as permissionless for backward compatibility." + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Permissionless" + }, + { + "name": "Permission" + }, + { + "name": "CustomizablePermissionless" + }, + { + "name": "PermissionlessV2" + } + ] + } + }, + { + "name": "PairStatus", + "docs": [ + "Pair status. 0 = Enabled, 1 = Disabled. Putting 0 as enabled for backward compatibility." + ], + "type": { + "kind": "enum", + "variants": [ + { + "name": "Enabled" + }, + { + "name": "Disabled" + } + ] + } + }, + { + "name": "TokenProgramFlags", + "type": { + "kind": "enum", + "variants": [ + { + "name": "TokenProgram" + }, + { + "name": "TokenProgram2022" + } + ] + } + }, + { + "name": "AccountsType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "TransferHookX" + }, + { + "name": "TransferHookY" + }, + { + "name": "TransferHookReward" + } + ] + } + } + ], + "events": [ + { + "name": "CompositionFee", + "fields": [ + { + "name": "from", + "type": "publicKey", + "index": false + }, + { + "name": "binId", + "type": "i16", + "index": false + }, + { + "name": "tokenXFeeAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenYFeeAmount", + "type": "u64", + "index": false + }, + { + "name": "protocolTokenXFeeAmount", + "type": "u64", + "index": false + }, + { + "name": "protocolTokenYFeeAmount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "AddLiquidity", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "from", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "amounts", + "type": { + "array": [ + "u64", + 2 + ] + }, + "index": false + }, + { + "name": "activeBinId", + "type": "i32", + "index": false + } + ] + }, + { + "name": "RemoveLiquidity", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "from", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "amounts", + "type": { + "array": [ + "u64", + 2 + ] + }, + "index": false + }, + { + "name": "activeBinId", + "type": "i32", + "index": false + } + ] + }, + { + "name": "Swap", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "from", + "type": "publicKey", + "index": false + }, + { + "name": "startBinId", + "type": "i32", + "index": false + }, + { + "name": "endBinId", + "type": "i32", + "index": false + }, + { + "name": "amountIn", + "type": "u64", + "index": false + }, + { + "name": "amountOut", + "type": "u64", + "index": false + }, + { + "name": "swapForY", + "type": "bool", + "index": false + }, + { + "name": "fee", + "type": "u64", + "index": false + }, + { + "name": "protocolFee", + "type": "u64", + "index": false + }, + { + "name": "feeBps", + "type": "u128", + "index": false + }, + { + "name": "hostFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "ClaimReward", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "rewardIndex", + "type": "u64", + "index": false + }, + { + "name": "totalReward", + "type": "u64", + "index": false + } + ] + }, + { + "name": "FundReward", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "funder", + "type": "publicKey", + "index": false + }, + { + "name": "rewardIndex", + "type": "u64", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "InitializeReward", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "rewardMint", + "type": "publicKey", + "index": false + }, + { + "name": "funder", + "type": "publicKey", + "index": false + }, + { + "name": "rewardIndex", + "type": "u64", + "index": false + }, + { + "name": "rewardDuration", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdateRewardDuration", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "rewardIndex", + "type": "u64", + "index": false + }, + { + "name": "oldRewardDuration", + "type": "u64", + "index": false + }, + { + "name": "newRewardDuration", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdateRewardFunder", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "rewardIndex", + "type": "u64", + "index": false + }, + { + "name": "oldFunder", + "type": "publicKey", + "index": false + }, + { + "name": "newFunder", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PositionClose", + "fields": [ + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "ClaimFee", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "feeX", + "type": "u64", + "index": false + }, + { + "name": "feeY", + "type": "u64", + "index": false + } + ] + }, + { + "name": "LbPairCreate", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "binStep", + "type": "u16", + "index": false + }, + { + "name": "tokenX", + "type": "publicKey", + "index": false + }, + { + "name": "tokenY", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "PositionCreate", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "IncreasePositionLength", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "lengthToAdd", + "type": "u16", + "index": false + }, + { + "name": "side", + "type": "u8", + "index": false + } + ] + }, + { + "name": "DecreasePositionLength", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "lengthToRemove", + "type": "u16", + "index": false + }, + { + "name": "side", + "type": "u8", + "index": false + } + ] + }, + { + "name": "FeeParameterUpdate", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "protocolShare", + "type": "u16", + "index": false + }, + { + "name": "baseFactor", + "type": "u16", + "index": false + } + ] + }, + { + "name": "DynamicFeeParameterUpdate", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "filterPeriod", + "type": "u16", + "index": false + }, + { + "name": "decayPeriod", + "type": "u16", + "index": false + }, + { + "name": "reductionFactor", + "type": "u16", + "index": false + }, + { + "name": "variableFeeControl", + "type": "u32", + "index": false + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32", + "index": false + } + ] + }, + { + "name": "IncreaseObservation", + "fields": [ + { + "name": "oracle", + "type": "publicKey", + "index": false + }, + { + "name": "newObservationLength", + "type": "u64", + "index": false + } + ] + }, + { + "name": "WithdrawIneligibleReward", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "rewardMint", + "type": "publicKey", + "index": false + }, + { + "name": "amount", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdatePositionOperator", + "fields": [ + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "oldOperator", + "type": "publicKey", + "index": false + }, + { + "name": "newOperator", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "UpdatePositionLockReleasePoint", + "fields": [ + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "currentPoint", + "type": "u64", + "index": false + }, + { + "name": "newLockReleasePoint", + "type": "u64", + "index": false + }, + { + "name": "oldLockReleasePoint", + "type": "u64", + "index": false + }, + { + "name": "sender", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "GoToABin", + "fields": [ + { + "name": "lbPair", + "type": "publicKey", + "index": false + }, + { + "name": "fromBinId", + "type": "i32", + "index": false + }, + { + "name": "toBinId", + "type": "i32", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidStartBinIndex", + "msg": "Invalid start bin index" + }, + { + "code": 6001, + "name": "InvalidBinId", + "msg": "Invalid bin id" + }, + { + "code": 6002, + "name": "InvalidInput", + "msg": "Invalid input data" + }, + { + "code": 6003, + "name": "ExceededAmountSlippageTolerance", + "msg": "Exceeded amount slippage tolerance" + }, + { + "code": 6004, + "name": "ExceededBinSlippageTolerance", + "msg": "Exceeded bin slippage tolerance" + }, + { + "code": 6005, + "name": "CompositionFactorFlawed", + "msg": "Composition factor flawed" + }, + { + "code": 6006, + "name": "NonPresetBinStep", + "msg": "Non preset bin step" + }, + { + "code": 6007, + "name": "ZeroLiquidity", + "msg": "Zero liquidity" + }, + { + "code": 6008, + "name": "InvalidPosition", + "msg": "Invalid position" + }, + { + "code": 6009, + "name": "BinArrayNotFound", + "msg": "Bin array not found" + }, + { + "code": 6010, + "name": "InvalidTokenMint", + "msg": "Invalid token mint" + }, + { + "code": 6011, + "name": "InvalidAccountForSingleDeposit", + "msg": "Invalid account for single deposit" + }, + { + "code": 6012, + "name": "PairInsufficientLiquidity", + "msg": "Pair insufficient liquidity" + }, + { + "code": 6013, + "name": "InvalidFeeOwner", + "msg": "Invalid fee owner" + }, + { + "code": 6014, + "name": "InvalidFeeWithdrawAmount", + "msg": "Invalid fee withdraw amount" + }, + { + "code": 6015, + "name": "InvalidAdmin", + "msg": "Invalid admin" + }, + { + "code": 6016, + "name": "IdenticalFeeOwner", + "msg": "Identical fee owner" + }, + { + "code": 6017, + "name": "InvalidBps", + "msg": "Invalid basis point" + }, + { + "code": 6018, + "name": "MathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6019, + "name": "TypeCastFailed", + "msg": "Type cast error" + }, + { + "code": 6020, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6021, + "name": "InvalidRewardDuration", + "msg": "Invalid reward duration" + }, + { + "code": 6022, + "name": "RewardInitialized", + "msg": "Reward already initialized" + }, + { + "code": 6023, + "name": "RewardUninitialized", + "msg": "Reward not initialized" + }, + { + "code": 6024, + "name": "IdenticalFunder", + "msg": "Identical funder" + }, + { + "code": 6025, + "name": "RewardCampaignInProgress", + "msg": "Reward campaign in progress" + }, + { + "code": 6026, + "name": "IdenticalRewardDuration", + "msg": "Reward duration is the same" + }, + { + "code": 6027, + "name": "InvalidBinArray", + "msg": "Invalid bin array" + }, + { + "code": 6028, + "name": "NonContinuousBinArrays", + "msg": "Bin arrays must be continuous" + }, + { + "code": 6029, + "name": "InvalidRewardVault", + "msg": "Invalid reward vault" + }, + { + "code": 6030, + "name": "NonEmptyPosition", + "msg": "Position is not empty" + }, + { + "code": 6031, + "name": "UnauthorizedAccess", + "msg": "Unauthorized access" + }, + { + "code": 6032, + "name": "InvalidFeeParameter", + "msg": "Invalid fee parameter" + }, + { + "code": 6033, + "name": "MissingOracle", + "msg": "Missing oracle account" + }, + { + "code": 6034, + "name": "InsufficientSample", + "msg": "Insufficient observation sample" + }, + { + "code": 6035, + "name": "InvalidLookupTimestamp", + "msg": "Invalid lookup timestamp" + }, + { + "code": 6036, + "name": "BitmapExtensionAccountIsNotProvided", + "msg": "Bitmap extension account is not provided" + }, + { + "code": 6037, + "name": "CannotFindNonZeroLiquidityBinArrayId", + "msg": "Cannot find non-zero liquidity binArrayId" + }, + { + "code": 6038, + "name": "BinIdOutOfBound", + "msg": "Bin id out of bound" + }, + { + "code": 6039, + "name": "InsufficientOutAmount", + "msg": "Insufficient amount in for minimum out" + }, + { + "code": 6040, + "name": "InvalidPositionWidth", + "msg": "Invalid position width" + }, + { + "code": 6041, + "name": "ExcessiveFeeUpdate", + "msg": "Excessive fee update" + }, + { + "code": 6042, + "name": "PoolDisabled", + "msg": "Pool disabled" + }, + { + "code": 6043, + "name": "InvalidPoolType", + "msg": "Invalid pool type" + }, + { + "code": 6044, + "name": "ExceedMaxWhitelist", + "msg": "Whitelist for wallet is full" + }, + { + "code": 6045, + "name": "InvalidIndex", + "msg": "Invalid index" + }, + { + "code": 6046, + "name": "RewardNotEnded", + "msg": "Reward not ended" + }, + { + "code": 6047, + "name": "MustWithdrawnIneligibleReward", + "msg": "Must withdraw ineligible reward" + }, + { + "code": 6048, + "name": "UnauthorizedAddress", + "msg": "Unauthorized address" + }, + { + "code": 6049, + "name": "OperatorsAreTheSame", + "msg": "Cannot update because operators are the same" + }, + { + "code": 6050, + "name": "WithdrawToWrongTokenAccount", + "msg": "Withdraw to wrong token account" + }, + { + "code": 6051, + "name": "WrongRentReceiver", + "msg": "Wrong rent receiver" + }, + { + "code": 6052, + "name": "AlreadyPassActivationPoint", + "msg": "Already activated" + }, + { + "code": 6053, + "name": "ExceedMaxSwappedAmount", + "msg": "Swapped amount is exceeded max swapped amount" + }, + { + "code": 6054, + "name": "InvalidStrategyParameters", + "msg": "Invalid strategy parameters" + }, + { + "code": 6055, + "name": "LiquidityLocked", + "msg": "Liquidity locked" + }, + { + "code": 6056, + "name": "BinRangeIsNotEmpty", + "msg": "Bin range is not empty" + }, + { + "code": 6057, + "name": "NotExactAmountOut", + "msg": "Amount out is not matched with exact amount out" + }, + { + "code": 6058, + "name": "InvalidActivationType", + "msg": "Invalid activation type" + }, + { + "code": 6059, + "name": "InvalidActivationDuration", + "msg": "Invalid activation duration" + }, + { + "code": 6060, + "name": "MissingTokenAmountAsTokenLaunchProof", + "msg": "Missing token amount as token launch owner proof" + }, + { + "code": 6061, + "name": "InvalidQuoteToken", + "msg": "Quote token must be SOL or USDC" + }, + { + "code": 6062, + "name": "InvalidBinStep", + "msg": "Invalid bin step" + }, + { + "code": 6063, + "name": "InvalidBaseFee", + "msg": "Invalid base fee" + }, + { + "code": 6064, + "name": "InvalidPreActivationDuration", + "msg": "Invalid pre-activation duration" + }, + { + "code": 6065, + "name": "AlreadyPassPreActivationSwapPoint", + "msg": "Already pass pre-activation swap point" + }, + { + "code": 6066, + "name": "InvalidStatus", + "msg": "Invalid status" + }, + { + "code": 6067, + "name": "ExceededMaxOracleLength", + "msg": "Exceed max oracle length" + }, + { + "code": 6068, + "name": "InvalidMinimumLiquidity", + "msg": "Invalid minimum liquidity" + }, + { + "code": 6069, + "name": "NotSupportMint", + "msg": "Not support token_2022 mint extension" + }, + { + "code": 6070, + "name": "UnsupportedMintExtension", + "msg": "Unsupported mint extension" + }, + { + "code": 6071, + "name": "UnsupportNativeMintToken2022", + "msg": "Unsupported native mint token2022" + }, + { + "code": 6072, + "name": "UnmatchTokenMint", + "msg": "Unmatch token mint" + }, + { + "code": 6073, + "name": "UnsupportedTokenMint", + "msg": "Unsupported token mint" + }, + { + "code": 6074, + "name": "InsufficientRemainingAccounts", + "msg": "Insufficient remaining accounts" + }, + { + "code": 6075, + "name": "InvalidRemainingAccountSlice", + "msg": "Invalid remaining account slice" + }, + { + "code": 6076, + "name": "DuplicatedRemainingAccountTypes", + "msg": "Duplicated remaining account types" + }, + { + "code": 6077, + "name": "MissingRemainingAccountForTransferHook", + "msg": "Missing remaining account for transfer hook" + }, + { + "code": 6078, + "name": "NoTransferHookProgram", + "msg": "Remaining account was passed for transfer hook but there's no hook program" + }, + { + "code": 6079, + "name": "ZeroFundedAmount", + "msg": "Zero funded amount" + }, + { + "code": 6080, + "name": "InvalidSide", + "msg": "Invalid side" + }, + { + "code": 6081, + "name": "InvalidResizeLength", + "msg": "Invalid resize length" + }, + { + "code": 6082, + "name": "NotSupportAtTheMoment", + "msg": "Not support at the moment" + } + ] +} \ No newline at end of file diff --git a/idl/orca_lyf_orca.json b/idl/orca_lyf_orca.json new file mode 100644 index 0000000..4f10999 --- /dev/null +++ b/idl/orca_lyf_orca.json @@ -0,0 +1,3388 @@ +{ + "version": "0.0.0", + "name": "lyf_orca", + "instructions": [ + { + "name": "initializeStrategy", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFeeAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolAccount0", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolAccount1", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardsSwapPoolId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "version", + "type": { + "defined": "ProtocolVerison" + } + } + ] + }, + { + "name": "setDoubleDipStakePool", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmTknAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStakePoolFarmInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipRewardsSwapPoolId", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStrategyRewardsTknAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPlatformRewardsTkn", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updatePlatformRewards", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "adminFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardsPerSlot", + "type": "u64" + }, + { + "name": "rewardsStartSlot", + "type": "u64" + }, + { + "name": "rewardsEndSlot", + "type": "u64" + } + ] + }, + { + "name": "initializeUser", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializeUserWithNonce", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "nonce", + "type": "u32" + }, + { + "name": "bumpSeed", + "type": "u8" + } + ] + }, + { + "name": "closeEmptyAccount", + "accounts": [ + { + "name": "userMainAccount", + "isMut": true, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPositionStopLoss", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "stopLossType", + "type": "u8" + }, + { + "name": "stopLossRatio", + "type": "u8" + } + ] + }, + { + "name": "setPositionRangeStop", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rangeStopType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + } + ] + }, + { + "name": "transfer", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "TransferForInvestParam" + } + } + ] + }, + { + "name": "borrow", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "BorrowParam" + } + } + ] + }, + { + "name": "swap", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "addLiquidity", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "addLiquiditySigleSide", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "stakeLp", + "accounts": [ + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolLpTknValut", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "doubleDipStakeFarmTkn", + "accounts": [ + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStakePoolFarmTknValut", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "doubleDipUnstakeFarmTkn", + "accounts": [ + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "doubleDipStakePoolFarmTknValut", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStrategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "doubleDipStakePoolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "unstakeLp", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolLpTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "UnstakeLpParam" + } + } + ] + }, + { + "name": "unstakeLpWithType", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolLpTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "WithdrawParam" + } + } + ] + }, + { + "name": "removeLiquidity", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "swapAndWithdraw", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "SwapAndWithdrawParam" + } + } + ] + }, + { + "name": "beforeStableWithdraw", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "SwapAndWithdrawParam" + } + } + ] + }, + { + "name": "stableSwap", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "SwapAndWithdrawParam" + } + } + ] + }, + { + "name": "stableWithdraw", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "userRepay", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "UserRepayParam" + } + } + ] + }, + { + "name": "repayBorrowedPc", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "repayBorrowedCoin", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "liquidateUnstakeLp", + "accounts": [ + { + "name": "liquidator", + "isMut": false, + "isSigner": true + }, + { + "name": "liquidatorLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakeFarmTknMint", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolRewardTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTknAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidateType", + "type": "u8" + } + ] + }, + { + "name": "swapRewardsToTarget", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTargetTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardsSwapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardsSwapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTargetTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolRewardsFeeTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardsTargetLpMint", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "swapRewardsForBalance", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolFeeTkn", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "harvestRewards", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolLpTknVault", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolRewardTknVault", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "addRewardsToLiquidity", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "addRewardsToLiquiditySingleSide", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "swapPoolId", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn0", + "isMut": true, + "isSigner": false + }, + { + "name": "swapPoolTkn1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMint", + "isMut": true, + "isSigner": false + }, + { + "name": "userFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFranciumRewardsTkn", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminUpdateMaxLeverage", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "newLeverage", + "type": "u8" + } + ] + }, + { + "name": "adminUpdateLiquidateLine", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "newLiquidateLine", + "type": "u8" + } + ] + }, + { + "name": "adminUpdateCompoundRewardsRate", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "compoundRewardsRate", + "type": "u8" + } + ] + }, + { + "name": "adminCloseEmptyAccount", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminClearWithdrawFlag", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminRepayBadDebts", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "adminTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "adminTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tknRepay0", + "type": "u64" + }, + { + "name": "tknRepay1", + "type": "u64" + } + ] + }, + { + "name": "adminBurnBorrowCredit", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "creditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "creditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminSetFeeAccount", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFeeAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "StrategyState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolVersion", + "type": "u8" + }, + { + "name": "protocolSubVersion", + "type": "u8" + }, + { + "name": "lastUpdateSlot", + "type": "u64" + }, + { + "name": "totalLp", + "type": "u64" + }, + { + "name": "totalShares", + "type": "u64" + }, + { + "name": "totalBorrowed0", + "type": "u64" + }, + { + "name": "totalBorrowed1", + "type": "u64" + }, + { + "name": "pendingTkn0", + "type": "u64" + }, + { + "name": "pendingTkn1", + "type": "u64" + }, + { + "name": "pendingWithdrawLp", + "type": "u64" + }, + { + "name": "pendingRepay0", + "type": "u64" + }, + { + "name": "pendingRepay1", + "type": "u64" + }, + { + "name": "cumulatedBorrowRate0", + "type": "u128" + }, + { + "name": "cumulatedBorrowRate1", + "type": "u128" + }, + { + "name": "maxLeverage", + "type": "u8" + }, + { + "name": "liquidateLine", + "type": "u8" + }, + { + "name": "compoundRewardsRate", + "type": "u8" + }, + { + "name": "admin", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "authorityNonce", + "type": "u8" + }, + { + "name": "franciumRewardsEnable", + "type": "u8" + }, + { + "name": "franciumRewardsStartSlot", + "type": "u64" + }, + { + "name": "franciumRewardsEndSlot", + "type": "u64" + }, + { + "name": "franciumRewardsPerSlot", + "type": "u64" + }, + { + "name": "franciumAccumulatedRewardsPerShare", + "type": "u128" + }, + { + "name": "franciumRewardsTknAccount", + "type": "publicKey" + }, + { + "name": "lendingProgramId", + "type": "publicKey" + }, + { + "name": "ammProgramId", + "type": "publicKey" + }, + { + "name": "stakeProgramId", + "type": "publicKey" + }, + { + "name": "tknAccount0", + "type": "publicKey" + }, + { + "name": "tknAccount1", + "type": "publicKey" + }, + { + "name": "lpTknAccount", + "type": "publicKey" + }, + { + "name": "rewardsTknAccount", + "type": "publicKey" + }, + { + "name": "farmTknAccount", + "type": "publicKey" + }, + { + "name": "lendingPool0", + "type": "publicKey" + }, + { + "name": "strategyLendingCreditAccount0", + "type": "publicKey" + }, + { + "name": "lendingPool1", + "type": "publicKey" + }, + { + "name": "strategyLendingCreditAccount1", + "type": "publicKey" + }, + { + "name": "doubleDipRewardsSwapPoolId", + "type": "publicKey" + }, + { + "name": "doubleDipStrategyRewardsTknAccount", + "type": "publicKey" + }, + { + "name": "swapPoolId", + "type": "publicKey" + }, + { + "name": "rewardsSwapPoolId", + "type": "publicKey" + }, + { + "name": "stakePoolFarmInfo", + "type": "publicKey" + }, + { + "name": "strategyFarmInfo", + "type": "publicKey" + }, + { + "name": "doubleDipFarmTknAccount", + "type": "publicKey" + }, + { + "name": "doubleDipStakePoolFarmInfo", + "type": "publicKey" + }, + { + "name": "doubleDipStrategyFarmInfo", + "type": "publicKey" + }, + { + "name": "feeAccount", + "type": "publicKey" + } + ] + } + }, + { + "name": "UserInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "lastUpdateSlot", + "type": "u64" + }, + { + "name": "strategyStateAccount", + "type": "publicKey" + }, + { + "name": "userMainAccount", + "type": "publicKey" + }, + { + "name": "pending0", + "type": "u8" + }, + { + "name": "pendingInvestFlag", + "type": "u8" + }, + { + "name": "stopLoss", + "type": "u8" + }, + { + "name": "tkn0", + "type": "u64" + }, + { + "name": "tkn1", + "type": "u64" + }, + { + "name": "borrowed0", + "type": "u64" + }, + { + "name": "borrowed1", + "type": "u64" + }, + { + "name": "principle0", + "type": "u64" + }, + { + "name": "principle1", + "type": "u64" + }, + { + "name": "investedLp", + "type": "u64" + }, + { + "name": "lpShares", + "type": "u64" + }, + { + "name": "pendingWithdrawLp", + "type": "u64" + }, + { + "name": "pendingRepay0", + "type": "u64" + }, + { + "name": "pendingRepay1", + "type": "u64" + }, + { + "name": "cumulatedBorrowRate0", + "type": "u128" + }, + { + "name": "cumulatedBorrowRate1", + "type": "u128" + }, + { + "name": "platformRewardsDebt", + "type": "u128" + }, + { + "name": "pendingWithdrawFlag", + "type": "u8" + }, + { + "name": "takeProfitLine", + "type": "u16" + }, + { + "name": "stableSwapComputeFlag", + "type": "u8" + }, + { + "name": "stableSwapDirection", + "type": "u8" + }, + { + "name": "stableSwapAmount", + "type": "u64" + }, + { + "name": "stopPositionType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + }, + { + "name": "padding2", + "type": { + "array": [ + "u8", + 13 + ] + } + }, + { + "name": "accountNonce", + "type": "u32" + }, + { + "name": "isEmpty", + "type": "u8" + } + ] + } + } + ], + "types": [ + { + "name": "ProtocolVerison", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolVersion", + "type": "u8" + }, + { + "name": "subVersion", + "type": "u8" + } + ] + } + }, + { + "name": "PositionStopParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidateType", + "type": "u8" + }, + { + "name": "stopLossType", + "type": "u8" + }, + { + "name": "stopLossRatio", + "type": "u8" + }, + { + "name": "takeProfitType", + "type": "u8" + }, + { + "name": "takeProfitRatio", + "type": "u16" + }, + { + "name": "rangeStopType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + } + ] + } + }, + { + "name": "TransferForInvestParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stopLoss", + "type": "u8" + }, + { + "name": "amount0", + "type": "u64" + }, + { + "name": "amount1", + "type": "u64" + } + ] + } + }, + { + "name": "BorrowParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "borrow0", + "type": "u64" + }, + { + "name": "borrow1", + "type": "u64" + } + ] + } + }, + { + "name": "UnstakeLpParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sharesAmount", + "type": "u64" + } + ] + } + }, + { + "name": "WithdrawParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "withdrawType", + "type": "u8" + }, + { + "name": "sharesAmount", + "type": "u64" + } + ] + } + }, + { + "name": "SwapAndWithdrawParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "withdrawType", + "type": "u8" + } + ] + } + }, + { + "name": "UserRepayParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "repaySide", + "type": "u8" + }, + { + "name": "repayAmount", + "type": "u64" + } + ] + } + } + ], + "errors": [ + { + "code": 1300, + "name": "MathOverflow", + "msg": "Math Overflow" + }, + { + "code": 1301, + "name": "InvalidInstruction", + "msg": "Invalid Instruction" + }, + { + "code": 1302, + "name": "InvalidProgramAddress", + "msg": "Invalid program derivated address or nonce" + }, + { + "code": 1303, + "name": "InvalidProtocolVersion", + "msg": "Invalid Protocol Version" + }, + { + "code": 1304, + "name": "InvalidData", + "msg": "Invalid data" + }, + { + "code": 1305, + "name": "AlreadyInUse", + "msg": "Already in use" + }, + { + "code": 1306, + "name": "InvalidTokenMint", + "msg": "Invalid token mint" + }, + { + "code": 1307, + "name": "InsufficientBalance", + "msg": "Insufficient balance" + }, + { + "code": 1308, + "name": "UnexpectedError", + "msg": "UnexpectedError" + }, + { + "code": 1309, + "name": "InvalidStrategyAccount", + "msg": "Invalid Strategy Account" + }, + { + "code": 1310, + "name": "InvalidStrategyAuthority", + "msg": "Invalid Strategy Authority" + }, + { + "code": 1311, + "name": "InvalidUserInfoAccount", + "msg": "Invalid UserInfo Account" + }, + { + "code": 1312, + "name": "InvalidStrategyFarmInfoAccount", + "msg": "Invalid StrategyFarmInfo Account" + }, + { + "code": 1313, + "name": "InvalidTokenAccount", + "msg": "Invalid Token Account" + }, + { + "code": 1314, + "name": "InvalidTokenAccountOwner", + "msg": "Invalid Token Account Owner" + }, + { + "code": 1315, + "name": "InvalidStrategyState", + "msg": "Invalid Strategy state" + }, + { + "code": 1316, + "name": "InvalidLendingPool", + "msg": "Invalid lending pool" + }, + { + "code": 1317, + "name": "UnsupportedFeature", + "msg": "Unsupported Feature" + }, + { + "code": 1318, + "name": "NeedAdminPermission", + "msg": "Need Admin Permission" + }, + { + "code": 1319, + "name": "AlreadyInLiquidationOrWithdraw", + "msg": "Already in liquidation or withdraw" + }, + { + "code": 1320, + "name": "InvalidLiquidator", + "msg": "Invalid Liquidator" + }, + { + "code": 1321, + "name": "InvalidBorrowAmount", + "msg": "Invalid Borrow Amount" + }, + { + "code": 1322, + "name": "AmountTooLarge", + "msg": "Amount Too Large" + }, + { + "code": 1323, + "name": "NotEnougToRepay", + "msg": "Not Enough to repay" + }, + { + "code": 1324, + "name": "BeforeStableWithdrawUnfinished", + "msg": "Unfinish BeforeStableWithdraw" + }, + { + "code": 1325, + "name": "AccountNotEmpty", + "msg": "Account Not Empty" + }, + { + "code": 1326, + "name": "LeverageTooHigh", + "msg": "Leverage Too High" + } + ] +} \ No newline at end of file diff --git a/idl/orca_whirlpool.json b/idl/orca_whirlpool.json new file mode 100644 index 0000000..ceb22cb --- /dev/null +++ b/idl/orca_whirlpool.json @@ -0,0 +1,1687 @@ +{ + "version": "0.1.0", + "name": "whirlpool", + "instructions": [ + { + "name": "initializeConfig", + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": true + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeAuthority", + "type": "publicKey" + }, + { + "name": "collectProtocolFeesAuthority", + "type": "publicKey" + }, + { + "name": "rewardEmissionsSuperAuthority", + "type": "publicKey" + }, + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "initializePool", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": true + }, + { + "name": "feeTier", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "WhirlpoolBumps" + } + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initialSqrtPrice", + "type": "u128" + } + ] + }, + { + "name": "initializeTickArray", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tickArray", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "startTickIndex", + "type": "i32" + } + ] + }, + { + "name": "initializeFeeTier", + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + }, + { + "name": "initializeReward", + "accounts": [ + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardEmissions", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardVault", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + } + ] + }, + { + "name": "openPosition", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "OpenPositionBumps" + } + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "openPositionWithMetadata", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionMetadataAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataUpdateAuth", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "OpenPositionWithMetadataBumps" + } + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "increaseLiquidity", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMaxA", + "type": "u64" + }, + { + "name": "tokenMaxB", + "type": "u64" + } + ] + }, + { + "name": "decreaseLiquidity", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMinA", + "type": "u64" + }, + { + "name": "tokenMinB", + "type": "u64" + } + ] + }, + { + "name": "updateFeesAndRewards", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": false, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "collectFees", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "collectReward", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardOwnerAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "collectProtocolFees", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "collectProtocolFeesAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "swap", + "accounts": [ + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray2", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimit", + "type": "u128" + }, + { + "name": "amountSpecifiedIsInput", + "type": "bool" + }, + { + "name": "aToB", + "type": "bool" + } + ] + }, + { + "name": "closePosition", + "accounts": [ + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setDefaultFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setDefaultProtocolFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "feeRate", + "type": "u16" + } + ] + }, + { + "name": "setProtocolFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "protocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setFeeAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newFeeAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setCollectProtocolFeesAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "collectProtocolFeesAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newCollectProtocolFeesAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setRewardAuthority", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardAuthorityBySuperAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardEmissionsSuperAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "WhirlpoolsConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "feeAuthority", + "type": "publicKey" + }, + { + "name": "collectProtocolFeesAuthority", + "type": "publicKey" + }, + { + "name": "rewardEmissionsSuperAuthority", + "type": "publicKey" + }, + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + } + }, + { + "name": "FeeTier", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + } + }, + { + "name": "Position", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey" + }, + { + "name": "positionMint", + "type": "publicKey" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "feeGrowthCheckpointA", + "type": "u128" + }, + { + "name": "feeOwedA", + "type": "u64" + }, + { + "name": "feeGrowthCheckpointB", + "type": "u128" + }, + { + "name": "feeOwedB", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "PositionRewardInfo" + }, + 3 + ] + } + } + ] + } + }, + { + "name": "TickArray", + "type": { + "kind": "struct", + "fields": [ + { + "name": "startTickIndex", + "type": "i32" + }, + { + "name": "ticks", + "type": { + "array": [ + { + "defined": "Tick" + }, + 88 + ] + } + }, + { + "name": "whirlpool", + "type": "publicKey" + } + ] + } + }, + { + "name": "Whirlpool", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "whirlpoolBump", + "type": { + "array": [ + "u8", + 1 + ] + } + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "tickSpacingSeed", + "type": { + "array": [ + "u8", + 2 + ] + } + }, + { + "name": "feeRate", + "type": "u16" + }, + { + "name": "protocolFeeRate", + "type": "u16" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrtPrice", + "type": "u128" + }, + { + "name": "tickCurrentIndex", + "type": "i32" + }, + { + "name": "protocolFeeOwedA", + "type": "u64" + }, + { + "name": "protocolFeeOwedB", + "type": "u64" + }, + { + "name": "tokenMintA", + "type": "publicKey" + }, + { + "name": "tokenVaultA", + "type": "publicKey" + }, + { + "name": "feeGrowthGlobalA", + "type": "u128" + }, + { + "name": "tokenMintB", + "type": "publicKey" + }, + { + "name": "tokenVaultB", + "type": "publicKey" + }, + { + "name": "feeGrowthGlobalB", + "type": "u128" + }, + { + "name": "rewardLastUpdatedTimestamp", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "WhirlpoolRewardInfo" + }, + 3 + ] + } + } + ] + } + } + ], + "types": [ + { + "name": "OpenPositionBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBump", + "type": "u8" + } + ] + } + }, + { + "name": "OpenPositionWithMetadataBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBump", + "type": "u8" + }, + { + "name": "metadataBump", + "type": "u8" + } + ] + } + }, + { + "name": "PositionRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "growthInsideCheckpoint", + "type": "u128" + }, + { + "name": "amountOwed", + "type": "u64" + } + ] + } + }, + { + "name": "Tick", + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "bool" + }, + { + "name": "liquidityNet", + "type": "i128" + }, + { + "name": "liquidityGross", + "type": "u128" + }, + { + "name": "feeGrowthOutsideA", + "type": "u128" + }, + { + "name": "feeGrowthOutsideB", + "type": "u128" + }, + { + "name": "rewardGrowthsOutside", + "type": { + "array": [ + "u128", + 3 + ] + } + } + ] + } + }, + { + "name": "WhirlpoolRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "vault", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "growthGlobalX64", + "type": "u128" + } + ] + } + }, + { + "name": "WhirlpoolBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolBump", + "type": "u8" + } + ] + } + }, + { + "name": "CurrIndex", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Below" + }, + { + "name": "Inside" + }, + { + "name": "Above" + } + ] + } + }, + { + "name": "TickLabel", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Upper" + }, + { + "name": "Lower" + } + ] + } + }, + { + "name": "Direction", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Left" + }, + { + "name": "Right" + } + ] + } + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidEnum", + "msg": "Enum value could not be converted" + }, + { + "code": 6001, + "name": "InvalidStartTick", + "msg": "Invalid start tick index provided." + }, + { + "code": 6002, + "name": "TickArrayExistInPool", + "msg": "Tick-array already exists in this whirlpool" + }, + { + "code": 6003, + "name": "TickArrayIndexOutofBounds", + "msg": "Attempt to search for a tick-array failed" + }, + { + "code": 6004, + "name": "InvalidTickSpacing", + "msg": "Tick-spacing is not supported" + }, + { + "code": 6005, + "name": "ClosePositionNotEmpty", + "msg": "Position is not empty It cannot be closed" + }, + { + "code": 6006, + "name": "DivideByZero", + "msg": "Unable to divide by zero" + }, + { + "code": 6007, + "name": "NumberCastError", + "msg": "Unable to cast number into BigInt" + }, + { + "code": 6008, + "name": "NumberDownCastError", + "msg": "Unable to down cast number" + }, + { + "code": 6009, + "name": "TickNotFound", + "msg": "Tick not found within tick array" + }, + { + "code": 6010, + "name": "InvalidTickIndex", + "msg": "Provided tick index is either out of bounds or uninitializable" + }, + { + "code": 6011, + "name": "SqrtPriceOutOfBounds", + "msg": "Provided sqrt price out of bounds" + }, + { + "code": 6012, + "name": "LiquidityZero", + "msg": "Liquidity amount must be greater than zero" + }, + { + "code": 6013, + "name": "LiquidityTooHigh", + "msg": "Liquidity amount must be less than i64::MAX" + }, + { + "code": 6014, + "name": "LiquidityOverflow", + "msg": "Liquidity overflow" + }, + { + "code": 6015, + "name": "LiquidityUnderflow", + "msg": "Liquidity underflow" + }, + { + "code": 6016, + "name": "LiquidityNetError", + "msg": "Tick liquidity net underflowed or overflowed" + }, + { + "code": 6017, + "name": "TokenMaxExceeded", + "msg": "Exceeded token max" + }, + { + "code": 6018, + "name": "TokenMinSubceeded", + "msg": "Did not meet token min" + }, + { + "code": 6019, + "name": "MissingOrInvalidDelegate", + "msg": "Position token account has a missing or invalid delegate" + }, + { + "code": 6020, + "name": "InvalidPositionTokenAmount", + "msg": "Position token amount must be 1" + }, + { + "code": 6021, + "name": "InvalidTimestampConversion", + "msg": "Timestamp should be convertible from i64 to u64" + }, + { + "code": 6022, + "name": "InvalidTimestamp", + "msg": "Timestamp should be greater than the last updated timestamp" + }, + { + "code": 6023, + "name": "InvalidTickArraySequence", + "msg": "Invalid tick array sequence provided for instruction." + }, + { + "code": 6024, + "name": "InvalidTokenMintOrder", + "msg": "Token Mint in wrong order" + }, + { + "code": 6025, + "name": "RewardNotInitialized", + "msg": "Reward not initialized" + }, + { + "code": 6026, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6027, + "name": "RewardVaultAmountInsufficient", + "msg": "Reward vault requires amount to support emissions for at least one day" + }, + { + "code": 6028, + "name": "FeeRateMaxExceeded", + "msg": "Exceeded max fee rate" + }, + { + "code": 6029, + "name": "ProtocolFeeRateMaxExceeded", + "msg": "Exceeded max protocol fee rate" + }, + { + "code": 6030, + "name": "MultiplicationShiftRightOverflow", + "msg": "Multiplication with shift right overflow" + }, + { + "code": 6031, + "name": "MulDivOverflow", + "msg": "Muldiv overflow" + }, + { + "code": 6032, + "name": "MulDivInvalidInput", + "msg": "Invalid div_u256 input" + }, + { + "code": 6033, + "name": "MultiplicationOverflow", + "msg": "Multiplication overflow" + }, + { + "code": 6034, + "name": "InvalidSqrtPriceLimitDirection", + "msg": "Provided SqrtPriceLimit not in the same direction as the swap." + }, + { + "code": 6035, + "name": "ZeroTradableAmount", + "msg": "There are no tradable amount to swap." + }, + { + "code": 6036, + "name": "AmountOutBelowMinimum", + "msg": "Amount out below minimum threshold" + }, + { + "code": 6037, + "name": "AmountInAboveMaximum", + "msg": "Amount in above maximum threshold" + }, + { + "code": 6038, + "name": "TickArraySequenceInvalidIndex", + "msg": "Invalid index for tick array sequence" + }, + { + "code": 6039, + "name": "AmountCalcOverflow", + "msg": "Amount calculated overflows" + }, + { + "code": 6040, + "name": "AmountRemainingOverflow", + "msg": "Amount remaining overflows" + } + ] +} \ No newline at end of file diff --git a/idl/orca_whirlpool_v2.json b/idl/orca_whirlpool_v2.json new file mode 100644 index 0000000..679d119 --- /dev/null +++ b/idl/orca_whirlpool_v2.json @@ -0,0 +1,4326 @@ +{ + "version": "0.3.6", + "name": "whirlpool", + "instructions": [ + { + "name": "initializeConfig", + "accounts": [ + { + "name": "config", + "isMut": true, + "isSigner": true + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeAuthority", + "type": "publicKey" + }, + { + "name": "collectProtocolFeesAuthority", + "type": "publicKey" + }, + { + "name": "rewardEmissionsSuperAuthority", + "type": "publicKey" + }, + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "initializePool", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": true + }, + { + "name": "feeTier", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "WhirlpoolBumps" + } + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initialSqrtPrice", + "type": "u128" + } + ] + }, + { + "name": "initializeTickArray", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tickArray", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "startTickIndex", + "type": "i32" + } + ] + }, + { + "name": "initializeFeeTier", + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + }, + { + "name": "initializeReward", + "accounts": [ + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardEmissions", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardVault", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + } + ] + }, + { + "name": "openPosition", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "OpenPositionBumps" + } + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "openPositionWithMetadata", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionMetadataAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataUpdateAuth", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bumps", + "type": { + "defined": "OpenPositionWithMetadataBumps" + } + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "increaseLiquidity", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMaxA", + "type": "u64" + }, + { + "name": "tokenMaxB", + "type": "u64" + } + ] + }, + { + "name": "decreaseLiquidity", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMinA", + "type": "u64" + }, + { + "name": "tokenMinB", + "type": "u64" + } + ] + }, + { + "name": "updateFeesAndRewards", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": false, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "collectFees", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "collectReward", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardOwnerAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "collectProtocolFees", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "collectProtocolFeesAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "swap", + "accounts": [ + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray2", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimit", + "type": "u128" + }, + { + "name": "amountSpecifiedIsInput", + "type": "bool" + }, + { + "name": "aToB", + "type": "bool" + } + ] + }, + { + "name": "closePosition", + "accounts": [ + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setDefaultFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "feeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setDefaultProtocolFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "feeRate", + "type": "u16" + } + ] + }, + { + "name": "setProtocolFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "protocolFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setFeeAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newFeeAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setCollectProtocolFeesAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "collectProtocolFeesAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newCollectProtocolFeesAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setRewardAuthority", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardAuthorityBySuperAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardEmissionsSuperAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newRewardEmissionsSuperAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "twoHopSwap", + "accounts": [ + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpoolOne", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpoolTwo", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountOneA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultOneA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountOneB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultOneB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountTwoA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultTwoA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountTwoB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultTwoB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayOne0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayOne1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayOne2", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo2", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleOne", + "isMut": false, + "isSigner": false + }, + { + "name": "oracleTwo", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "amountSpecifiedIsInput", + "type": "bool" + }, + { + "name": "aToBOne", + "type": "bool" + }, + { + "name": "aToBTwo", + "type": "bool" + }, + { + "name": "sqrtPriceLimitOne", + "type": "u128" + }, + { + "name": "sqrtPriceLimitTwo", + "type": "u128" + } + ] + }, + { + "name": "initializePositionBundle", + "accounts": [ + { + "name": "positionBundle", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionBundleTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializePositionBundleWithMetadata", + "accounts": [ + { + "name": "positionBundle", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionBundleMetadata", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "metadataUpdateAuth", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "deletePositionBundle", + "accounts": [ + { + "name": "positionBundle", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "openBundledPosition", + "accounts": [ + { + "name": "bundledPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundle", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "positionBundleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "bundleIndex", + "type": "u16" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "closeBundledPosition", + "accounts": [ + { + "name": "bundledPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundle", + "isMut": true, + "isSigner": false + }, + { + "name": "positionBundleTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "positionBundleAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "bundleIndex", + "type": "u16" + } + ] + }, + { + "name": "openPositionWithTokenExtensions", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "owner", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "token2022Program", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataUpdateAuth", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "withTokenMetadataExtension", + "type": "bool" + } + ] + }, + { + "name": "closePositionWithTokenExtensions", + "accounts": [ + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "token2022Program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "lockPosition", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": false, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": false, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lockConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "token2022Program", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "lockType", + "type": { + "defined": "LockType" + } + } + ] + }, + { + "name": "resetPositionRange", + "accounts": [ + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "newTickLowerIndex", + "type": "i32" + }, + { + "name": "newTickUpperIndex", + "type": "i32" + } + ] + }, + { + "name": "transferLockedPosition", + "accounts": [ + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + }, + { + "name": "position", + "isMut": false, + "isSigner": false + }, + { + "name": "positionMint", + "isMut": false, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "destinationTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lockConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "token2022Program", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializeAdaptiveFeeTier", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "feeTierIndex", + "type": "u16" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initializePoolAuthority", + "type": "publicKey" + }, + { + "name": "delegatedFeeAuthority", + "type": "publicKey" + }, + { + "name": "defaultBaseFeeRate", + "type": "u16" + }, + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "adaptiveFeeControlFactor", + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "tickGroupSize", + "type": "u16" + }, + { + "name": "majorSwapThresholdTicks", + "type": "u16" + } + ] + }, + { + "name": "setDefaultBaseFeeRate", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "defaultBaseFeeRate", + "type": "u16" + } + ] + }, + { + "name": "setDelegatedFeeAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newDelegatedFeeAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setInitializePoolAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newInitializePoolAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPresetAdaptiveFeeConstants", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": true, + "isSigner": false + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "adaptiveFeeControlFactor", + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "tickGroupSize", + "type": "u16" + }, + { + "name": "majorSwapThresholdTicks", + "type": "u16" + } + ] + }, + { + "name": "initializePoolWithAdaptiveFee", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeB", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "initializePoolAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": true + }, + { + "name": "adaptiveFeeTier", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "initialSqrtPrice", + "type": "u128" + }, + { + "name": "tradeEnableTimestamp", + "type": { + "option": "u64" + } + } + ] + }, + { + "name": "setFeeRateByDelegatedFeeAuthority", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "adaptiveFeeTier", + "isMut": false, + "isSigner": false + }, + { + "name": "delegatedFeeAuthority", + "isMut": false, + "isSigner": true + } + ], + "args": [ + { + "name": "feeRate", + "type": "u16" + } + ] + }, + { + "name": "collectFeesV2", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "collectProtocolFeesV2", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "collectProtocolFeesAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenDestinationB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "collectRewardV2", + "accounts": [ + { + "name": "whirlpool", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardOwnerAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "decreaseLiquidityV2", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMinA", + "type": "u64" + }, + { + "name": "tokenMinB", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "increaseLiquidityV2", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "positionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "position", + "isMut": true, + "isSigner": false + }, + { + "name": "positionTokenAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidityAmount", + "type": "u128" + }, + { + "name": "tokenMaxA", + "type": "u64" + }, + { + "name": "tokenMaxB", + "type": "u64" + }, + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "initializePoolV2", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeB", + "isMut": false, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": true + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": true + }, + { + "name": "feeTier", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initialSqrtPrice", + "type": "u128" + } + ] + }, + { + "name": "initializeRewardV2", + "accounts": [ + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardTokenBadge", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardVault", + "isMut": true, + "isSigner": true + }, + { + "name": "rewardTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "setRewardEmissionsV2", + "accounts": [ + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "rewardVault", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + } + ] + }, + { + "name": "swapV2", + "accounts": [ + { + "name": "tokenProgramA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramB", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "whirlpool", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMintA", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintB", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultA", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultB", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArray2", + "isMut": true, + "isSigner": false + }, + { + "name": "oracle", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimit", + "type": "u128" + }, + { + "name": "amountSpecifiedIsInput", + "type": "bool" + }, + { + "name": "aToB", + "type": "bool" + }, + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "twoHopSwapV2", + "accounts": [ + { + "name": "whirlpoolOne", + "isMut": true, + "isSigner": false + }, + { + "name": "whirlpoolTwo", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMintInput", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintIntermediate", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMintOutput", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramInput", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramIntermediate", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramOutput", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenOwnerAccountInput", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultOneInput", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultOneIntermediate", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultTwoIntermediate", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVaultTwoOutput", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenOwnerAccountOutput", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tickArrayOne0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayOne1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayOne2", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo0", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayTwo2", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleOne", + "isMut": true, + "isSigner": false + }, + { + "name": "oracleTwo", + "isMut": true, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "amountSpecifiedIsInput", + "type": "bool" + }, + { + "name": "aToBOne", + "type": "bool" + }, + { + "name": "aToBTwo", + "type": "bool" + }, + { + "name": "sqrtPriceLimitOne", + "type": "u128" + }, + { + "name": "sqrtPriceLimitTwo", + "type": "u128" + }, + { + "name": "remainingAccountsInfo", + "type": { + "option": { + "defined": "RemainingAccountsInfo" + } + } + } + ] + }, + { + "name": "initializeConfigExtension", + "accounts": [ + { + "name": "config", + "isMut": false, + "isSigner": false + }, + { + "name": "configExtension", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "feeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setConfigExtensionAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpoolsConfigExtension", + "isMut": true, + "isSigner": false + }, + { + "name": "configExtensionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newConfigExtensionAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setTokenBadgeAuthority", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpoolsConfigExtension", + "isMut": true, + "isSigner": false + }, + { + "name": "configExtensionAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "newTokenBadgeAuthority", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "initializeTokenBadge", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpoolsConfigExtension", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadge", + "isMut": true, + "isSigner": false + }, + { + "name": "funder", + "isMut": true, + "isSigner": true + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "deleteTokenBadge", + "accounts": [ + { + "name": "whirlpoolsConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "whirlpoolsConfigExtension", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadgeAuthority", + "isMut": false, + "isSigner": true + }, + { + "name": "tokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenBadge", + "isMut": true, + "isSigner": false + }, + { + "name": "receiver", + "isMut": true, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "AdaptiveFeeTier", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "feeTierIndex", + "type": "u16" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initializePoolAuthority", + "type": "publicKey" + }, + { + "name": "delegatedFeeAuthority", + "type": "publicKey" + }, + { + "name": "defaultBaseFeeRate", + "type": "u16" + }, + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "adaptiveFeeControlFactor", + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "tickGroupSize", + "type": "u16" + }, + { + "name": "majorSwapThresholdTicks", + "type": "u16" + } + ] + } + }, + { + "name": "WhirlpoolsConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "feeAuthority", + "type": "publicKey" + }, + { + "name": "collectProtocolFeesAuthority", + "type": "publicKey" + }, + { + "name": "rewardEmissionsSuperAuthority", + "type": "publicKey" + }, + { + "name": "defaultProtocolFeeRate", + "type": "u16" + } + ] + } + }, + { + "name": "WhirlpoolsConfigExtension", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "configExtensionAuthority", + "type": "publicKey" + }, + { + "name": "tokenBadgeAuthority", + "type": "publicKey" + } + ] + } + }, + { + "name": "FeeTier", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "defaultFeeRate", + "type": "u16" + } + ] + } + }, + { + "name": "LockConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "position", + "type": "publicKey" + }, + { + "name": "positionOwner", + "type": "publicKey" + }, + { + "name": "whirlpool", + "type": "publicKey" + }, + { + "name": "lockedTimestamp", + "type": "u64" + }, + { + "name": "lockType", + "type": { + "defined": "LockTypeLabel" + } + } + ] + } + }, + { + "name": "Oracle", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey" + }, + { + "name": "tradeEnableTimestamp", + "type": "u64" + }, + { + "name": "adaptiveFeeConstants", + "type": { + "defined": "AdaptiveFeeConstants" + } + }, + { + "name": "adaptiveFeeVariables", + "type": { + "defined": "AdaptiveFeeVariables" + } + }, + { + "name": "reserved", + "type": { + "array": [ + "u8", + 128 + ] + } + } + ] + } + }, + { + "name": "Position", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey" + }, + { + "name": "positionMint", + "type": "publicKey" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "feeGrowthCheckpointA", + "type": "u128" + }, + { + "name": "feeOwedA", + "type": "u64" + }, + { + "name": "feeGrowthCheckpointB", + "type": "u128" + }, + { + "name": "feeOwedB", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "PositionRewardInfo" + }, + 3 + ] + } + } + ] + } + }, + { + "name": "PositionBundle", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBundleMint", + "type": "publicKey" + }, + { + "name": "positionBitmap", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "TickArray", + "type": { + "kind": "struct", + "fields": [ + { + "name": "startTickIndex", + "type": "i32" + }, + { + "name": "ticks", + "type": { + "array": [ + { + "defined": "Tick" + }, + 88 + ] + } + }, + { + "name": "whirlpool", + "type": "publicKey" + } + ] + } + }, + { + "name": "TokenBadge", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "tokenMint", + "type": "publicKey" + } + ] + } + }, + { + "name": "Whirlpool", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "whirlpoolBump", + "type": { + "array": [ + "u8", + 1 + ] + } + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "feeTierIndexSeed", + "type": { + "array": [ + "u8", + 2 + ] + } + }, + { + "name": "feeRate", + "type": "u16" + }, + { + "name": "protocolFeeRate", + "type": "u16" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrtPrice", + "type": "u128" + }, + { + "name": "tickCurrentIndex", + "type": "i32" + }, + { + "name": "protocolFeeOwedA", + "type": "u64" + }, + { + "name": "protocolFeeOwedB", + "type": "u64" + }, + { + "name": "tokenMintA", + "type": "publicKey" + }, + { + "name": "tokenVaultA", + "type": "publicKey" + }, + { + "name": "feeGrowthGlobalA", + "type": "u128" + }, + { + "name": "tokenMintB", + "type": "publicKey" + }, + { + "name": "tokenVaultB", + "type": "publicKey" + }, + { + "name": "feeGrowthGlobalB", + "type": "u128" + }, + { + "name": "rewardLastUpdatedTimestamp", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "WhirlpoolRewardInfo" + }, + 3 + ] + } + } + ] + } + } + ], + "types": [ + { + "name": "LockType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Permanent" + } + ] + } + }, + { + "name": "LockTypeLabel", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Permanent" + } + ] + } + }, + { + "name": "AdaptiveFeeConstants", + "type": { + "kind": "struct", + "fields": [ + { + "name": "filterPeriod", + "type": "u16" + }, + { + "name": "decayPeriod", + "type": "u16" + }, + { + "name": "reductionFactor", + "type": "u16" + }, + { + "name": "adaptiveFeeControlFactor", + "type": "u32" + }, + { + "name": "maxVolatilityAccumulator", + "type": "u32" + }, + { + "name": "tickGroupSize", + "type": "u16" + }, + { + "name": "majorSwapThresholdTicks", + "type": "u16" + }, + { + "name": "reserved", + "type": { + "array": [ + "u8", + 16 + ] + } + } + ] + } + }, + { + "name": "AdaptiveFeeVariables", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lastReferenceUpdateTimestamp", + "type": "u64" + }, + { + "name": "lastMajorSwapTimestamp", + "type": "u64" + }, + { + "name": "volatilityReference", + "type": "u32" + }, + { + "name": "tickGroupIndexReference", + "type": "i32" + }, + { + "name": "volatilityAccumulator", + "type": "u32" + }, + { + "name": "reserved", + "type": { + "array": [ + "u8", + 16 + ] + } + } + ] + } + }, + { + "name": "OpenPositionBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBump", + "type": "u8" + } + ] + } + }, + { + "name": "OpenPositionWithMetadataBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBump", + "type": "u8" + }, + { + "name": "metadataBump", + "type": "u8" + } + ] + } + }, + { + "name": "PositionRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "growthInsideCheckpoint", + "type": "u128" + }, + { + "name": "amountOwed", + "type": "u64" + } + ] + } + }, + { + "name": "Tick", + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "bool" + }, + { + "name": "liquidityNet", + "type": "i128" + }, + { + "name": "liquidityGross", + "type": "u128" + }, + { + "name": "feeGrowthOutsideA", + "type": "u128" + }, + { + "name": "feeGrowthOutsideB", + "type": "u128" + }, + { + "name": "rewardGrowthsOutside", + "type": { + "array": [ + "u128", + 3 + ] + } + } + ] + } + }, + { + "name": "WhirlpoolBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolBump", + "type": "u8" + } + ] + } + }, + { + "name": "WhirlpoolRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint", + "type": "publicKey" + }, + { + "name": "vault", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "growthGlobalX64", + "type": "u128" + } + ] + } + }, + { + "name": "AccountsType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "TransferHookA" + }, + { + "name": "TransferHookB" + }, + { + "name": "TransferHookReward" + }, + { + "name": "TransferHookInput" + }, + { + "name": "TransferHookIntermediate" + }, + { + "name": "TransferHookOutput" + }, + { + "name": "SupplementalTickArrays" + }, + { + "name": "SupplementalTickArraysOne" + }, + { + "name": "SupplementalTickArraysTwo" + } + ] + } + }, + { + "name": "RemainingAccountsInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "slices", + "type": { + "vec": { + "defined": "RemainingAccountsSlice" + } + } + } + ] + } + }, + { + "name": "RemainingAccountsSlice", + "type": { + "kind": "struct", + "fields": [ + { + "name": "accountsType", + "type": { + "defined": "AccountsType" + } + }, + { + "name": "length", + "type": "u8" + } + ] + } + } + ], + "events": [ + { + "name": "LiquidityDecreased", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "tickLowerIndex", + "type": "i32", + "index": false + }, + { + "name": "tickUpperIndex", + "type": "i32", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenATransferFee", + "type": "u64", + "index": false + }, + { + "name": "tokenBTransferFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "LiquidityIncreased", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey", + "index": false + }, + { + "name": "position", + "type": "publicKey", + "index": false + }, + { + "name": "tickLowerIndex", + "type": "i32", + "index": false + }, + { + "name": "tickUpperIndex", + "type": "i32", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "tokenAAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenBAmount", + "type": "u64", + "index": false + }, + { + "name": "tokenATransferFee", + "type": "u64", + "index": false + }, + { + "name": "tokenBTransferFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "PoolInitialized", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey", + "index": false + }, + { + "name": "whirlpoolsConfig", + "type": "publicKey", + "index": false + }, + { + "name": "tokenMintA", + "type": "publicKey", + "index": false + }, + { + "name": "tokenMintB", + "type": "publicKey", + "index": false + }, + { + "name": "tickSpacing", + "type": "u16", + "index": false + }, + { + "name": "tokenProgramA", + "type": "publicKey", + "index": false + }, + { + "name": "tokenProgramB", + "type": "publicKey", + "index": false + }, + { + "name": "decimalsA", + "type": "u8", + "index": false + }, + { + "name": "decimalsB", + "type": "u8", + "index": false + }, + { + "name": "initialSqrtPrice", + "type": "u128", + "index": false + } + ] + }, + { + "name": "Traded", + "fields": [ + { + "name": "whirlpool", + "type": "publicKey", + "index": false + }, + { + "name": "aToB", + "type": "bool", + "index": false + }, + { + "name": "preSqrtPrice", + "type": "u128", + "index": false + }, + { + "name": "postSqrtPrice", + "type": "u128", + "index": false + }, + { + "name": "inputAmount", + "type": "u64", + "index": false + }, + { + "name": "outputAmount", + "type": "u64", + "index": false + }, + { + "name": "inputTransferFee", + "type": "u64", + "index": false + }, + { + "name": "outputTransferFee", + "type": "u64", + "index": false + }, + { + "name": "lpFee", + "type": "u64", + "index": false + }, + { + "name": "protocolFee", + "type": "u64", + "index": false + } + ] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidEnum", + "msg": "Enum value could not be converted" + }, + { + "code": 6001, + "name": "InvalidStartTick", + "msg": "Invalid start tick index provided." + }, + { + "code": 6002, + "name": "TickArrayExistInPool", + "msg": "Tick-array already exists in this whirlpool" + }, + { + "code": 6003, + "name": "TickArrayIndexOutofBounds", + "msg": "Attempt to search for a tick-array failed" + }, + { + "code": 6004, + "name": "InvalidTickSpacing", + "msg": "Tick-spacing is not supported" + }, + { + "code": 6005, + "name": "ClosePositionNotEmpty", + "msg": "Position is not empty It cannot be closed" + }, + { + "code": 6006, + "name": "DivideByZero", + "msg": "Unable to divide by zero" + }, + { + "code": 6007, + "name": "NumberCastError", + "msg": "Unable to cast number into BigInt" + }, + { + "code": 6008, + "name": "NumberDownCastError", + "msg": "Unable to down cast number" + }, + { + "code": 6009, + "name": "TickNotFound", + "msg": "Tick not found within tick array" + }, + { + "code": 6010, + "name": "InvalidTickIndex", + "msg": "Provided tick index is either out of bounds or uninitializable" + }, + { + "code": 6011, + "name": "SqrtPriceOutOfBounds", + "msg": "Provided sqrt price out of bounds" + }, + { + "code": 6012, + "name": "LiquidityZero", + "msg": "Liquidity amount must be greater than zero" + }, + { + "code": 6013, + "name": "LiquidityTooHigh", + "msg": "Liquidity amount must be less than i64::MAX" + }, + { + "code": 6014, + "name": "LiquidityOverflow", + "msg": "Liquidity overflow" + }, + { + "code": 6015, + "name": "LiquidityUnderflow", + "msg": "Liquidity underflow" + }, + { + "code": 6016, + "name": "LiquidityNetError", + "msg": "Tick liquidity net underflowed or overflowed" + }, + { + "code": 6017, + "name": "TokenMaxExceeded", + "msg": "Exceeded token max" + }, + { + "code": 6018, + "name": "TokenMinSubceeded", + "msg": "Did not meet token min" + }, + { + "code": 6019, + "name": "MissingOrInvalidDelegate", + "msg": "Position token account has a missing or invalid delegate" + }, + { + "code": 6020, + "name": "InvalidPositionTokenAmount", + "msg": "Position token amount must be 1" + }, + { + "code": 6021, + "name": "InvalidTimestampConversion", + "msg": "Timestamp should be convertible from i64 to u64" + }, + { + "code": 6022, + "name": "InvalidTimestamp", + "msg": "Timestamp should be greater than the last updated timestamp" + }, + { + "code": 6023, + "name": "InvalidTickArraySequence", + "msg": "Invalid tick array sequence provided for instruction." + }, + { + "code": 6024, + "name": "InvalidTokenMintOrder", + "msg": "Token Mint in wrong order" + }, + { + "code": 6025, + "name": "RewardNotInitialized", + "msg": "Reward not initialized" + }, + { + "code": 6026, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6027, + "name": "RewardVaultAmountInsufficient", + "msg": "Reward vault requires amount to support emissions for at least one day" + }, + { + "code": 6028, + "name": "FeeRateMaxExceeded", + "msg": "Exceeded max fee rate" + }, + { + "code": 6029, + "name": "ProtocolFeeRateMaxExceeded", + "msg": "Exceeded max protocol fee rate" + }, + { + "code": 6030, + "name": "MultiplicationShiftRightOverflow", + "msg": "Multiplication with shift right overflow" + }, + { + "code": 6031, + "name": "MulDivOverflow", + "msg": "Muldiv overflow" + }, + { + "code": 6032, + "name": "MulDivInvalidInput", + "msg": "Invalid div_u256 input" + }, + { + "code": 6033, + "name": "MultiplicationOverflow", + "msg": "Multiplication overflow" + }, + { + "code": 6034, + "name": "InvalidSqrtPriceLimitDirection", + "msg": "Provided SqrtPriceLimit not in the same direction as the swap." + }, + { + "code": 6035, + "name": "ZeroTradableAmount", + "msg": "There are no tradable amount to swap." + }, + { + "code": 6036, + "name": "AmountOutBelowMinimum", + "msg": "Amount out below minimum threshold" + }, + { + "code": 6037, + "name": "AmountInAboveMaximum", + "msg": "Amount in above maximum threshold" + }, + { + "code": 6038, + "name": "TickArraySequenceInvalidIndex", + "msg": "Invalid index for tick array sequence" + }, + { + "code": 6039, + "name": "AmountCalcOverflow", + "msg": "Amount calculated overflows" + }, + { + "code": 6040, + "name": "AmountRemainingOverflow", + "msg": "Amount remaining overflows" + }, + { + "code": 6041, + "name": "InvalidIntermediaryMint", + "msg": "Invalid intermediary mint" + }, + { + "code": 6042, + "name": "DuplicateTwoHopPool", + "msg": "Duplicate two hop pool" + }, + { + "code": 6043, + "name": "InvalidBundleIndex", + "msg": "Bundle index is out of bounds" + }, + { + "code": 6044, + "name": "BundledPositionAlreadyOpened", + "msg": "Position has already been opened" + }, + { + "code": 6045, + "name": "BundledPositionAlreadyClosed", + "msg": "Position has already been closed" + }, + { + "code": 6046, + "name": "PositionBundleNotDeletable", + "msg": "Unable to delete PositionBundle with open positions" + }, + { + "code": 6047, + "name": "UnsupportedTokenMint", + "msg": "Token mint has unsupported attributes" + }, + { + "code": 6048, + "name": "RemainingAccountsInvalidSlice", + "msg": "Invalid remaining accounts" + }, + { + "code": 6049, + "name": "RemainingAccountsInsufficient", + "msg": "Insufficient remaining accounts" + }, + { + "code": 6050, + "name": "NoExtraAccountsForTransferHook", + "msg": "Unable to call transfer hook without extra accounts" + }, + { + "code": 6051, + "name": "IntermediateTokenAmountMismatch", + "msg": "Output and input amount mismatch" + }, + { + "code": 6052, + "name": "TransferFeeCalculationError", + "msg": "Transfer fee calculation failed" + }, + { + "code": 6053, + "name": "RemainingAccountsDuplicatedAccountsType", + "msg": "Same accounts type is provided more than once" + }, + { + "code": 6054, + "name": "FullRangeOnlyPool", + "msg": "This whirlpool only supports full-range positions" + }, + { + "code": 6055, + "name": "TooManySupplementalTickArrays", + "msg": "Too many supplemental tick arrays provided" + }, + { + "code": 6056, + "name": "DifferentWhirlpoolTickArrayAccount", + "msg": "TickArray account for different whirlpool provided" + }, + { + "code": 6057, + "name": "PartialFillError", + "msg": "Trade resulted in partial fill" + }, + { + "code": 6058, + "name": "PositionNotLockable", + "msg": "Position is not lockable" + }, + { + "code": 6059, + "name": "OperationNotAllowedOnLockedPosition", + "msg": "Operation not allowed on locked position" + }, + { + "code": 6060, + "name": "SameTickRangeNotAllowed", + "msg": "Cannot reset position range with same tick range" + }, + { + "code": 6061, + "name": "InvalidAdaptiveFeeConstants", + "msg": "Invalid adaptive fee constants" + }, + { + "code": 6062, + "name": "InvalidFeeTierIndex", + "msg": "Invalid fee tier index" + }, + { + "code": 6063, + "name": "InvalidTradeEnableTimestamp", + "msg": "Invalid trade enable timestamp" + }, + { + "code": 6064, + "name": "TradeIsNotEnabled", + "msg": "Trade is not enabled yet" + } + ] +} \ No newline at end of file diff --git a/idl/raydium_amm_v3.json b/idl/raydium_amm_v3.json new file mode 100644 index 0000000..7df50fd --- /dev/null +++ b/idl/raydium_amm_v3.json @@ -0,0 +1,2249 @@ +{ + "version": "0.1.0", + "name": "amm_v3", + "instructions": [ + { + "name": "createAmmConfig", + "accounts": [ + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "tradeFeeRate", + "type": "u32" + }, + { + "name": "protocolFeeRate", + "type": "u32" + }, + { + "name": "fundFeeRate", + "type": "u32" + } + ] + }, + { + "name": "updateAmmConfig", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": "u8" + }, + { + "name": "value", + "type": "u32" + } + ] + }, + { + "name": "createPool", + "accounts": [ + { + "name": "poolCreator", + "isMut": true, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint0", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMint1", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "sqrtPriceX64", + "type": "u128" + } + ] + }, + { + "name": "createOperationAccount", + "accounts": [ + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "operationState", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateOperationAccount", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "operationState", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": "u8" + }, + { + "name": "keys", + "type": { + "vec": "publicKey" + } + } + ] + }, + { + "name": "resetSqrtPrice", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "sqrtPriceX64", + "type": "u128" + } + ] + }, + { + "name": "initializeReward", + "accounts": [ + { + "name": "rewardFunder", + "isMut": true, + "isSigner": true + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "operationState", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardTokenVault", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "InitializeRewardParam" + } + } + ] + }, + { + "name": "collectRemainingRewards", + "accounts": [ + { + "name": "rewardFunder", + "isMut": false, + "isSigner": true + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTokenVault", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "updateRewardInfos", + "accounts": [ + { + "name": "poolState", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setRewardParams", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "operationState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + } + ] + }, + { + "name": "collectProtocolFee", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount0Requested", + "type": "u64" + }, + { + "name": "amount1Requested", + "type": "u64" + } + ] + }, + { + "name": "collectFundFee", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount0Requested", + "type": "u64" + }, + { + "name": "amount1Requested", + "type": "u64" + } + ] + }, + { + "name": "openPosition", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "positionNftMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "tickArrayLowerStartIndex", + "type": "i32" + }, + { + "name": "tickArrayUpperStartIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + } + ] + }, + { + "name": "closePosition", + "accounts": [ + { + "name": "nftOwner", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionNftAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "increaseLiquidity", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + } + ] + }, + { + "name": "decreaseLiquidity", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Min", + "type": "u64" + }, + { + "name": "amount1Min", + "type": "u64" + } + ] + }, + { + "name": "swap", + "accounts": [ + { + "name": "payer", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "inputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "outputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "inputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "outputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tickArray", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimitX64", + "type": "u128" + }, + { + "name": "isBaseInput", + "type": "bool" + } + ] + }, + { + "name": "swapRouterBaseIn", + "accounts": [ + { + "name": "payer", + "isMut": false, + "isSigner": true + }, + { + "name": "inputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "amountOutMinimum", + "type": "u64" + } + ] + } + ], + "accounts": [ + { + "name": "AmmConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "owner", + "type": "publicKey" + }, + { + "name": "protocolFeeRate", + "type": "u32" + }, + { + "name": "tradeFeeRate", + "type": "u32" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "fundFeeRate", + "type": "u32" + }, + { + "name": "paddingU32", + "type": "u32" + }, + { + "name": "fundOwner", + "type": "publicKey" + }, + { + "name": "padding", + "type": { + "array": [ + "u64", + 3 + ] + } + } + ] + } + }, + { + "name": "OperationState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "operationOwners", + "type": { + "array": [ + "publicKey", + 10 + ] + } + }, + { + "name": "whitelistMints", + "type": { + "array": [ + "publicKey", + 100 + ] + } + } + ] + } + }, + { + "name": "ObservationState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "bool" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "observations", + "type": { + "array": [ + { + "defined": "Observation" + }, + 1000 + ] + } + }, + { + "name": "padding", + "type": { + "array": [ + "u128", + 5 + ] + } + } + ] + } + }, + { + "name": "PersonalPositionState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "nftMint", + "type": "publicKey" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "feeGrowthInside0LastX64", + "type": "u128" + }, + { + "name": "feeGrowthInside1LastX64", + "type": "u128" + }, + { + "name": "tokenFeesOwed0", + "type": "u64" + }, + { + "name": "tokenFeesOwed1", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "PositionRewardInfo" + }, + 3 + ] + } + }, + { + "name": "padding", + "type": { + "array": [ + "u64", + 8 + ] + } + } + ] + } + }, + { + "name": "PoolState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "ammConfig", + "type": "publicKey" + }, + { + "name": "owner", + "type": "publicKey" + }, + { + "name": "tokenMint0", + "type": "publicKey" + }, + { + "name": "tokenMint1", + "type": "publicKey" + }, + { + "name": "tokenVault0", + "type": "publicKey" + }, + { + "name": "tokenVault1", + "type": "publicKey" + }, + { + "name": "observationKey", + "type": "publicKey" + }, + { + "name": "mintDecimals0", + "type": "u8" + }, + { + "name": "mintDecimals1", + "type": "u8" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrtPriceX64", + "type": "u128" + }, + { + "name": "tickCurrent", + "type": "i32" + }, + { + "name": "observationIndex", + "type": "u16" + }, + { + "name": "observationUpdateDuration", + "type": "u16" + }, + { + "name": "feeGrowthGlobal0X64", + "type": "u128" + }, + { + "name": "feeGrowthGlobal1X64", + "type": "u128" + }, + { + "name": "protocolFeesToken0", + "type": "u64" + }, + { + "name": "protocolFeesToken1", + "type": "u64" + }, + { + "name": "swapInAmountToken0", + "type": "u128" + }, + { + "name": "swapOutAmountToken1", + "type": "u128" + }, + { + "name": "swapInAmountToken1", + "type": "u128" + }, + { + "name": "swapOutAmountToken0", + "type": "u128" + }, + { + "name": "status", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 7 + ] + } + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "RewardInfo" + }, + 3 + ] + } + }, + { + "name": "tickArrayBitmap", + "type": { + "array": [ + "u64", + 16 + ] + } + }, + { + "name": "totalFeesToken0", + "type": "u64" + }, + { + "name": "totalFeesClaimedToken0", + "type": "u64" + }, + { + "name": "totalFeesToken1", + "type": "u64" + }, + { + "name": "totalFeesClaimedToken1", + "type": "u64" + }, + { + "name": "fundFeesToken0", + "type": "u64" + }, + { + "name": "fundFeesToken1", + "type": "u64" + }, + { + "name": "padding1", + "type": { + "array": [ + "u64", + 26 + ] + } + }, + { + "name": "padding2", + "type": { + "array": [ + "u64", + 32 + ] + } + } + ] + } + }, + { + "name": "ProtocolPositionState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "feeGrowthInside0LastX64", + "type": "u128" + }, + { + "name": "feeGrowthInside1LastX64", + "type": "u128" + }, + { + "name": "tokenFeesOwed0", + "type": "u64" + }, + { + "name": "tokenFeesOwed1", + "type": "u64" + }, + { + "name": "rewardGrowthInside", + "type": { + "array": [ + "u128", + 3 + ] + } + }, + { + "name": "padding", + "type": { + "array": [ + "u64", + 8 + ] + } + } + ] + } + }, + { + "name": "TickArrayState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "startTickIndex", + "type": "i32" + }, + { + "name": "ticks", + "type": { + "array": [ + { + "defined": "TickState" + }, + 60 + ] + } + }, + { + "name": "initializedTickCount", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": [ + "u8", + 115 + ] + } + } + ] + } + } + ], + "types": [ + { + "name": "InitializeRewardParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + } + ] + } + }, + { + "name": "Observation", + "type": { + "kind": "struct", + "fields": [ + { + "name": "blockTimestamp", + "type": "u32" + }, + { + "name": "sqrtPriceX64", + "type": "u128" + }, + { + "name": "cumulativeTimePriceX64", + "type": "u128" + }, + { + "name": "padding", + "type": "u128" + } + ] + } + }, + { + "name": "PositionRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "growthInsideLastX64", + "type": "u128" + }, + { + "name": "rewardAmountOwed", + "type": "u64" + } + ] + } + }, + { + "name": "RewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewardState", + "type": "u8" + }, + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + }, + { + "name": "lastUpdateTime", + "type": "u64" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "rewardTotalEmissioned", + "type": "u64" + }, + { + "name": "rewardClaimed", + "type": "u64" + }, + { + "name": "tokenMint", + "type": "publicKey" + }, + { + "name": "tokenVault", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "rewardGrowthGlobalX64", + "type": "u128" + } + ] + } + }, + { + "name": "TickState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tick", + "type": "i32" + }, + { + "name": "liquidityNet", + "type": "i128" + }, + { + "name": "liquidityGross", + "type": "u128" + }, + { + "name": "feeGrowthOutside0X64", + "type": "u128" + }, + { + "name": "feeGrowthOutside1X64", + "type": "u128" + }, + { + "name": "rewardGrowthsOutsideX64", + "type": { + "array": [ + "u128", + 3 + ] + } + }, + { + "name": "padding", + "type": { + "array": [ + "u32", + 13 + ] + } + } + ] + } + }, + { + "name": "PoolStatusBitIndex", + "type": { + "kind": "enum", + "variants": [ + { + "name": "OpenPositionOrIncreaseLiquidity" + }, + { + "name": "DecreaseLiquidity" + }, + { + "name": "CollectFee" + }, + { + "name": "CollectReward" + }, + { + "name": "Swap" + } + ] + } + }, + { + "name": "PoolStatusBitFlag", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Enable" + }, + { + "name": "Disable" + } + ] + } + }, + { + "name": "RewardState", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Uninitialized" + }, + { + "name": "Initialized" + }, + { + "name": "Opening" + }, + { + "name": "Ended" + } + ] + } + } + ], + "events": [ + { + "name": "CreateConfigEvent", + "fields": [ + { + "name": "index", + "type": "u16", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": true + }, + { + "name": "protocolFeeRate", + "type": "u32", + "index": false + }, + { + "name": "tradeFeeRate", + "type": "u32", + "index": false + }, + { + "name": "tickSpacing", + "type": "u16", + "index": false + }, + { + "name": "fundFeeRate", + "type": "u32", + "index": false + }, + { + "name": "fundOwner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "UpdaterConfigEvent", + "fields": [ + { + "name": "owner", + "type": "publicKey", + "index": false + }, + { + "name": "protocolFeeRate", + "type": "u32", + "index": false + }, + { + "name": "tradeFeeRate", + "type": "u32", + "index": false + }, + { + "name": "fundFeeRate", + "type": "u32", + "index": false + }, + { + "name": "fundOwner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CreatePersonalPositionEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "minter", + "type": "publicKey", + "index": false + }, + { + "name": "nftOwner", + "type": "publicKey", + "index": false + }, + { + "name": "tickLowerIndex", + "type": "i32", + "index": false + }, + { + "name": "tickUpperIndex", + "type": "i32", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "depositAmount0", + "type": "u64", + "index": false + }, + { + "name": "depositAmount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "IncreaseLiquidityEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "DecreaseLiquidityEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "decreaseAmount0", + "type": "u64", + "index": false + }, + { + "name": "decreaseAmount1", + "type": "u64", + "index": false + }, + { + "name": "feeAmount0", + "type": "u64", + "index": false + }, + { + "name": "feeAmount1", + "type": "u64", + "index": false + }, + { + "name": "rewardAmounts", + "type": { + "array": [ + "u64", + 3 + ] + }, + "index": false + } + ] + }, + { + "name": "CollectPersonalFeeEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdateRewardInfosEvent", + "fields": [ + { + "name": "rewardGrowthGlobalX64", + "type": { + "array": [ + "u128", + 3 + ] + }, + "index": false + } + ] + }, + { + "name": "PoolCreatedEvent", + "fields": [ + { + "name": "tokenMint0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenMint1", + "type": "publicKey", + "index": false + }, + { + "name": "tickSpacing", + "type": "u16", + "index": false + }, + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "sqrtPriceX64", + "type": "u128", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + }, + { + "name": "tokenVault0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenVault1", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CollectProtocolFeeEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "SwapEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "sender", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + }, + { + "name": "zeroForOne", + "type": "bool", + "index": false + }, + { + "name": "sqrtPriceX64", + "type": "u128", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + } + ] + }, + { + "name": "LiquidityChangeEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + }, + { + "name": "tickLower", + "type": "i32", + "index": false + }, + { + "name": "tickUpper", + "type": "i32", + "index": false + }, + { + "name": "liquidityBefore", + "type": "u128", + "index": false + }, + { + "name": "liquidityAfter", + "type": "u128", + "index": false + } + ] + }, + { + "name": "PriceChangeEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "tickBefore", + "type": "i32", + "index": false + }, + { + "name": "tickAfter", + "type": "i32", + "index": false + }, + { + "name": "sqrtPriceX64Before", + "type": "u128", + "index": false + }, + { + "name": "sqrtPriceX64After", + "type": "u128", + "index": false + }, + { + "name": "liquidityBefore", + "type": "u128", + "index": false + }, + { + "name": "liquidityAfter", + "type": "u128", + "index": false + }, + { + "name": "zeroForOne", + "type": "bool", + "index": false + } + ] + } + ], + "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": "InvaildTickIndex", + "msg": "Tick out of range" + }, + { + "code": 6007, + "name": "TickInvaildOrder", + "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(-221818)" + }, + { + "code": 6009, + "name": "TickUpperOverflow", + "msg": "The tick must be lesser than, or equal to the maximum tick(221818)" + }, + { + "code": 6010, + "name": "TickAndSpacingNotMatch", + "msg": "tick % tick_spacing must be zero" + }, + { + "code": 6011, + "name": "InvalidTickArray", + "msg": "Invaild tick array account" + }, + { + "code": 6012, + "name": "InvalidTickArrayBoundary", + "msg": "Invaild 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": "InvaildLiquidity", + "msg": "Invaild 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": "InvaildSwapAmountSpecified", + "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": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6028, + "name": "FullRewardInfo", + "msg": "The init reward token reach to the max" + }, + { + "code": 6029, + "name": "RewardTokenAlreadyInUse", + "msg": "The init reward token already in use" + }, + { + "code": 6030, + "name": "ExceptPoolVaultMint", + "msg": "The reward tokens must contain one of pool vault mint except the last reward" + }, + { + "code": 6031, + "name": "InvalidRewardInitParam", + "msg": "Invalid reward init param" + }, + { + "code": 6032, + "name": "InvalidRewardDesiredAmount", + "msg": "Invalid collect reward desired amount" + }, + { + "code": 6033, + "name": "InvalidRewardInputAccountNumber", + "msg": "Invalid collect reward input account number" + }, + { + "code": 6034, + "name": "InvalidRewardPeriod", + "msg": "Invalid reward period" + }, + { + "code": 6035, + "name": "NotApproveUpdateRewardEmissiones", + "msg": "Modification of emissiones is allowed within 72 hours from the end of the previous cycle" + }, + { + "code": 6036, + "name": "UnInitializedRewardInfo", + "msg": "uninitialized reward info" + } + ] +} \ No newline at end of file diff --git a/idl/raydium_amm_v3_with_swapv2.json b/idl/raydium_amm_v3_with_swapv2.json new file mode 100644 index 0000000..c44c25c --- /dev/null +++ b/idl/raydium_amm_v3_with_swapv2.json @@ -0,0 +1,2829 @@ +{ + "version": "0.1.0", + "name": "amm_v3", + "instructions": [ + { + "name": "createAmmConfig", + "accounts": [ + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "tradeFeeRate", + "type": "u32" + }, + { + "name": "protocolFeeRate", + "type": "u32" + }, + { + "name": "fundFeeRate", + "type": "u32" + } + ] + }, + { + "name": "updateAmmConfig", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": "u8" + }, + { + "name": "value", + "type": "u32" + } + ] + }, + { + "name": "createPool", + "accounts": [ + { + "name": "poolCreator", + "isMut": true, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenMint0", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenMint1", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayBitmap", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram0", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram1", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "sqrtPriceX64", + "type": "u128" + }, + { + "name": "openTime", + "type": "u64" + } + ] + }, + { + "name": "updatePoolStatus", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "status", + "type": "u8" + } + ] + }, + { + "name": "createOperationAccount", + "accounts": [ + { + "name": "owner", + "isMut": true, + "isSigner": true + }, + { + "name": "operationState", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "updateOperationAccount", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "operationState", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": "u8" + }, + { + "name": "keys", + "type": { + "vec": "publicKey" + } + } + ] + }, + { + "name": "transferRewardOwner", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "newOwner", + "type": "publicKey" + } + ] + }, + { + "name": "initializeReward", + "accounts": [ + { + "name": "rewardFunder", + "isMut": true, + "isSigner": true + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "operationState", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardTokenMint", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardTokenVault", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "InitializeRewardParam" + } + } + ] + }, + { + "name": "collectRemainingRewards", + "accounts": [ + { + "name": "rewardFunder", + "isMut": false, + "isSigner": true + }, + { + "name": "funderTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTokenVault", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardVaultMint", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + } + ] + }, + { + "name": "updateRewardInfos", + "accounts": [ + { + "name": "poolState", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setRewardParams", + "accounts": [ + { + "name": "authority", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "operationState", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rewardIndex", + "type": "u8" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + } + ] + }, + { + "name": "collectProtocolFee", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "vault0Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "vault1Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount0Requested", + "type": "u64" + }, + { + "name": "amount1Requested", + "type": "u64" + } + ] + }, + { + "name": "collectFundFee", + "accounts": [ + { + "name": "owner", + "isMut": false, + "isSigner": true + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "vault0Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "vault1Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount0Requested", + "type": "u64" + }, + { + "name": "amount1Requested", + "type": "u64" + } + ] + }, + { + "name": "openPosition", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "positionNftMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "tickArrayLowerStartIndex", + "type": "i32" + }, + { + "name": "tickArrayUpperStartIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + } + ] + }, + { + "name": "openPositionV2", + "accounts": [ + { + "name": "payer", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftOwner", + "isMut": false, + "isSigner": false + }, + { + "name": "positionNftMint", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "metadataAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "associatedTokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "metadataProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "vault0Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "vault1Mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "tickArrayLowerStartIndex", + "type": "i32" + }, + { + "name": "tickArrayUpperStartIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + }, + { + "name": "withMatedata", + "type": "bool" + }, + { + "name": "baseFlag", + "type": { + "option": "bool" + } + } + ] + }, + { + "name": "closePosition", + "accounts": [ + { + "name": "nftOwner", + "isMut": true, + "isSigner": true + }, + { + "name": "positionNftMint", + "isMut": true, + "isSigner": false + }, + { + "name": "positionNftAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "increaseLiquidity", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + } + ] + }, + { + "name": "increaseLiquidityV2", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "vault0Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "vault1Mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Max", + "type": "u64" + }, + { + "name": "amount1Max", + "type": "u64" + }, + { + "name": "baseFlag", + "type": { + "option": "bool" + } + } + ] + }, + { + "name": "decreaseLiquidity", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Min", + "type": "u64" + }, + { + "name": "amount1Min", + "type": "u64" + } + ] + }, + { + "name": "decreaseLiquidityV2", + "accounts": [ + { + "name": "nftOwner", + "isMut": false, + "isSigner": true + }, + { + "name": "nftAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "personalPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "protocolPosition", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayLower", + "isMut": true, + "isSigner": false + }, + { + "name": "tickArrayUpper", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "recipientTokenAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "vault0Mint", + "isMut": false, + "isSigner": false + }, + { + "name": "vault1Mint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "amount0Min", + "type": "u64" + }, + { + "name": "amount1Min", + "type": "u64" + } + ] + }, + { + "name": "swap", + "accounts": [ + { + "name": "payer", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "inputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "outputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "inputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "outputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tickArray", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimitX64", + "type": "u128" + }, + { + "name": "isBaseInput", + "type": "bool" + } + ] + }, + { + "name": "swapV2", + "accounts": [ + { + "name": "payer", + "isMut": false, + "isSigner": true + }, + { + "name": "ammConfig", + "isMut": false, + "isSigner": false + }, + { + "name": "poolState", + "isMut": true, + "isSigner": false + }, + { + "name": "inputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "outputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "inputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "outputVault", + "isMut": true, + "isSigner": false + }, + { + "name": "observationState", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "inputVaultMint", + "isMut": false, + "isSigner": false + }, + { + "name": "outputVaultMint", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + }, + { + "name": "otherAmountThreshold", + "type": "u64" + }, + { + "name": "sqrtPriceLimitX64", + "type": "u128" + }, + { + "name": "isBaseInput", + "type": "bool" + } + ] + }, + { + "name": "swapRouterBaseIn", + "accounts": [ + { + "name": "payer", + "isMut": false, + "isSigner": true + }, + { + "name": "inputTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "inputTokenMint", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgram2022", + "isMut": false, + "isSigner": false + }, + { + "name": "memoProgram", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "amountOutMinimum", + "type": "u64" + } + ] + } + ], + "accounts": [ + { + "name": "AmmConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "owner", + "type": "publicKey" + }, + { + "name": "protocolFeeRate", + "type": "u32" + }, + { + "name": "tradeFeeRate", + "type": "u32" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "fundFeeRate", + "type": "u32" + }, + { + "name": "paddingU32", + "type": "u32" + }, + { + "name": "fundOwner", + "type": "publicKey" + }, + { + "name": "padding", + "type": { + "array": ["u64", 3] + } + } + ] + } + }, + { + "name": "OperationState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "operationOwners", + "type": { + "array": ["publicKey", 10] + } + }, + { + "name": "whitelistMints", + "type": { + "array": ["publicKey", 100] + } + } + ] + } + }, + { + "name": "ObservationState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "initialized", + "type": "bool" + }, + { + "name": "recentEpoch", + "type": "u64" + }, + { + "name": "observationIndex", + "type": "u16" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "observations", + "type": { + "array": [ + { + "defined": "Observation" + }, + 100 + ] + } + }, + { + "name": "padding", + "type": { + "array": ["u64", 4] + } + } + ] + } + }, + { + "name": "PersonalPositionState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "nftMint", + "type": "publicKey" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "feeGrowthInside0LastX64", + "type": "u128" + }, + { + "name": "feeGrowthInside1LastX64", + "type": "u128" + }, + { + "name": "tokenFeesOwed0", + "type": "u64" + }, + { + "name": "tokenFeesOwed1", + "type": "u64" + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "PositionRewardInfo" + }, + 3 + ] + } + }, + { + "name": "recentEpoch", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u64", 7] + } + } + ] + } + }, + { + "name": "PoolState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": { + "array": ["u8", 1] + } + }, + { + "name": "ammConfig", + "type": "publicKey" + }, + { + "name": "owner", + "type": "publicKey" + }, + { + "name": "tokenMint0", + "type": "publicKey" + }, + { + "name": "tokenMint1", + "type": "publicKey" + }, + { + "name": "tokenVault0", + "type": "publicKey" + }, + { + "name": "tokenVault1", + "type": "publicKey" + }, + { + "name": "observationKey", + "type": "publicKey" + }, + { + "name": "mintDecimals0", + "type": "u8" + }, + { + "name": "mintDecimals1", + "type": "u8" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "sqrtPriceX64", + "type": "u128" + }, + { + "name": "tickCurrent", + "type": "i32" + }, + { + "name": "padding3", + "type": "u16" + }, + { + "name": "padding4", + "type": "u16" + }, + { + "name": "feeGrowthGlobal0X64", + "type": "u128" + }, + { + "name": "feeGrowthGlobal1X64", + "type": "u128" + }, + { + "name": "protocolFeesToken0", + "type": "u64" + }, + { + "name": "protocolFeesToken1", + "type": "u64" + }, + { + "name": "swapInAmountToken0", + "type": "u128" + }, + { + "name": "swapOutAmountToken1", + "type": "u128" + }, + { + "name": "swapInAmountToken1", + "type": "u128" + }, + { + "name": "swapOutAmountToken0", + "type": "u128" + }, + { + "name": "status", + "type": "u8" + }, + { + "name": "padding", + "type": { + "array": ["u8", 7] + } + }, + { + "name": "rewardInfos", + "type": { + "array": [ + { + "defined": "RewardInfo" + }, + 3 + ] + } + }, + { + "name": "tickArrayBitmap", + "type": { + "array": ["u64", 16] + } + }, + { + "name": "totalFeesToken0", + "type": "u64" + }, + { + "name": "totalFeesClaimedToken0", + "type": "u64" + }, + { + "name": "totalFeesToken1", + "type": "u64" + }, + { + "name": "totalFeesClaimedToken1", + "type": "u64" + }, + { + "name": "fundFeesToken0", + "type": "u64" + }, + { + "name": "fundFeesToken1", + "type": "u64" + }, + { + "name": "openTime", + "type": "u64" + }, + { + "name": "recentEpoch", + "type": "u64" + }, + { + "name": "padding1", + "type": { + "array": ["u64", 24] + } + }, + { + "name": "padding2", + "type": { + "array": ["u64", 32] + } + } + ] + } + }, + { + "name": "ProtocolPositionState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "bump", + "type": "u8" + }, + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "tickLowerIndex", + "type": "i32" + }, + { + "name": "tickUpperIndex", + "type": "i32" + }, + { + "name": "liquidity", + "type": "u128" + }, + { + "name": "feeGrowthInside0LastX64", + "type": "u128" + }, + { + "name": "feeGrowthInside1LastX64", + "type": "u128" + }, + { + "name": "tokenFeesOwed0", + "type": "u64" + }, + { + "name": "tokenFeesOwed1", + "type": "u64" + }, + { + "name": "rewardGrowthInside", + "type": { + "array": ["u128", 3] + } + }, + { + "name": "recentEpoch", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u64", 7] + } + } + ] + } + }, + { + "name": "TickArrayState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "startTickIndex", + "type": "i32" + }, + { + "name": "ticks", + "type": { + "array": [ + { + "defined": "TickState" + }, + 60 + ] + } + }, + { + "name": "initializedTickCount", + "type": "u8" + }, + { + "name": "recentEpoch", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u8", 107] + } + } + ] + } + }, + { + "name": "TickArrayBitmapExtension", + "type": { + "kind": "struct", + "fields": [ + { + "name": "poolId", + "type": "publicKey" + }, + { + "name": "positiveTickArrayBitmap", + "type": { + "array": [ + { + "array": ["u64", 8] + }, + 14 + ] + } + }, + { + "name": "negativeTickArrayBitmap", + "type": { + "array": [ + { + "array": ["u64", 8] + }, + 14 + ] + } + } + ] + } + } + ], + "types": [ + { + "name": "InitializeRewardParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + } + ] + } + }, + { + "name": "Observation", + "type": { + "kind": "struct", + "fields": [ + { + "name": "blockTimestamp", + "type": "u32" + }, + { + "name": "tickCumulative", + "type": "i64" + }, + { + "name": "padding", + "type": { + "array": ["u64", 4] + } + } + ] + } + }, + { + "name": "PositionRewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "growthInsideLastX64", + "type": "u128" + }, + { + "name": "rewardAmountOwed", + "type": "u64" + } + ] + } + }, + { + "name": "RewardInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "rewardState", + "type": "u8" + }, + { + "name": "openTime", + "type": "u64" + }, + { + "name": "endTime", + "type": "u64" + }, + { + "name": "lastUpdateTime", + "type": "u64" + }, + { + "name": "emissionsPerSecondX64", + "type": "u128" + }, + { + "name": "rewardTotalEmissioned", + "type": "u64" + }, + { + "name": "rewardClaimed", + "type": "u64" + }, + { + "name": "tokenMint", + "type": "publicKey" + }, + { + "name": "tokenVault", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "rewardGrowthGlobalX64", + "type": "u128" + } + ] + } + }, + { + "name": "TickState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tick", + "type": "i32" + }, + { + "name": "liquidityNet", + "type": "i128" + }, + { + "name": "liquidityGross", + "type": "u128" + }, + { + "name": "feeGrowthOutside0X64", + "type": "u128" + }, + { + "name": "feeGrowthOutside1X64", + "type": "u128" + }, + { + "name": "rewardGrowthsOutsideX64", + "type": { + "array": ["u128", 3] + } + }, + { + "name": "padding", + "type": { + "array": ["u32", 13] + } + } + ] + } + }, + { + "name": "PoolStatusBitIndex", + "type": { + "kind": "enum", + "variants": [ + { + "name": "OpenPositionOrIncreaseLiquidity" + }, + { + "name": "DecreaseLiquidity" + }, + { + "name": "CollectFee" + }, + { + "name": "CollectReward" + }, + { + "name": "Swap" + } + ] + } + }, + { + "name": "PoolStatusBitFlag", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Enable" + }, + { + "name": "Disable" + } + ] + } + }, + { + "name": "RewardState", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Uninitialized" + }, + { + "name": "Initialized" + }, + { + "name": "Opening" + }, + { + "name": "Ended" + } + ] + } + }, + { + "name": "TickArryBitmap", + "type": { + "kind": "alias", + "value": { + "array": ["u64", 8] + } + } + } + ], + "events": [ + { + "name": "ConfigChangeEvent", + "fields": [ + { + "name": "index", + "type": "u16", + "index": false + }, + { + "name": "owner", + "type": "publicKey", + "index": true + }, + { + "name": "protocolFeeRate", + "type": "u32", + "index": false + }, + { + "name": "tradeFeeRate", + "type": "u32", + "index": false + }, + { + "name": "tickSpacing", + "type": "u16", + "index": false + }, + { + "name": "fundFeeRate", + "type": "u32", + "index": false + }, + { + "name": "fundOwner", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CreatePersonalPositionEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "minter", + "type": "publicKey", + "index": false + }, + { + "name": "nftOwner", + "type": "publicKey", + "index": false + }, + { + "name": "tickLowerIndex", + "type": "i32", + "index": false + }, + { + "name": "tickUpperIndex", + "type": "i32", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "depositAmount0", + "type": "u64", + "index": false + }, + { + "name": "depositAmount1", + "type": "u64", + "index": false + }, + { + "name": "depositAmount0TransferFee", + "type": "u64", + "index": false + }, + { + "name": "depositAmount1TransferFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "IncreaseLiquidityEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + }, + { + "name": "amount0TransferFee", + "type": "u64", + "index": false + }, + { + "name": "amount1TransferFee", + "type": "u64", + "index": false + } + ] + }, + { + "name": "DecreaseLiquidityEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "decreaseAmount0", + "type": "u64", + "index": false + }, + { + "name": "decreaseAmount1", + "type": "u64", + "index": false + }, + { + "name": "feeAmount0", + "type": "u64", + "index": false + }, + { + "name": "feeAmount1", + "type": "u64", + "index": false + }, + { + "name": "rewardAmounts", + "type": { + "array": ["u64", 3] + }, + "index": false + }, + { + "name": "transferFee0", + "type": "u64", + "index": false + }, + { + "name": "transferFee1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "LiquidityCalculateEvent", + "fields": [ + { + "name": "poolLiquidity", + "type": "u128", + "index": false + }, + { + "name": "poolSqrtPriceX64", + "type": "u128", + "index": false + }, + { + "name": "poolTick", + "type": "i32", + "index": false + }, + { + "name": "calcAmount0", + "type": "u64", + "index": false + }, + { + "name": "calcAmount1", + "type": "u64", + "index": false + }, + { + "name": "tradeFeeOwed0", + "type": "u64", + "index": false + }, + { + "name": "tradeFeeOwed1", + "type": "u64", + "index": false + }, + { + "name": "transferFee0", + "type": "u64", + "index": false + }, + { + "name": "transferFee1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "CollectPersonalFeeEvent", + "fields": [ + { + "name": "positionNftMint", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "UpdateRewardInfosEvent", + "fields": [ + { + "name": "rewardGrowthGlobalX64", + "type": { + "array": ["u128", 3] + }, + "index": false + } + ] + }, + { + "name": "PoolCreatedEvent", + "fields": [ + { + "name": "tokenMint0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenMint1", + "type": "publicKey", + "index": false + }, + { + "name": "tickSpacing", + "type": "u16", + "index": false + }, + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "sqrtPriceX64", + "type": "u128", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + }, + { + "name": "tokenVault0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenVault1", + "type": "publicKey", + "index": false + } + ] + }, + { + "name": "CollectProtocolFeeEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "recipientTokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + } + ] + }, + { + "name": "SwapEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "sender", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAccount0", + "type": "publicKey", + "index": false + }, + { + "name": "tokenAccount1", + "type": "publicKey", + "index": false + }, + { + "name": "amount0", + "type": "u64", + "index": false + }, + { + "name": "transferFee0", + "type": "u64", + "index": false + }, + { + "name": "amount1", + "type": "u64", + "index": false + }, + { + "name": "transferFee1", + "type": "u64", + "index": false + }, + { + "name": "zeroForOne", + "type": "bool", + "index": false + }, + { + "name": "sqrtPriceX64", + "type": "u128", + "index": false + }, + { + "name": "liquidity", + "type": "u128", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + } + ] + }, + { + "name": "LiquidityChangeEvent", + "fields": [ + { + "name": "poolState", + "type": "publicKey", + "index": false + }, + { + "name": "tick", + "type": "i32", + "index": false + }, + { + "name": "tickLower", + "type": "i32", + "index": false + }, + { + "name": "tickUpper", + "type": "i32", + "index": false + }, + { + "name": "liquidityBefore", + "type": "u128", + "index": false + }, + { + "name": "liquidityAfter", + "type": "u128", + "index": false + } + ] + } + ], + "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": "InvaildTickIndex", + "msg": "Tick out of range" + }, + { + "code": 6007, + "name": "TickInvaildOrder", + "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(-221818)" + }, + { + "code": 6009, + "name": "TickUpperOverflow", + "msg": "The tick must be lesser than, or equal to the maximum tick(221818)" + }, + { + "code": 6010, + "name": "TickAndSpacingNotMatch", + "msg": "tick % tick_spacing must be zero" + }, + { + "code": 6011, + "name": "InvalidTickArray", + "msg": "Invaild tick array account" + }, + { + "code": 6012, + "name": "InvalidTickArrayBoundary", + "msg": "Invaild 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": "InvaildLiquidity", + "msg": "Invaild 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": "InvaildSwapAmountSpecified", + "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": "Invaild 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": "ExceptPoolVaultMint", + "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" + } + ] +} diff --git a/idl/bonk.json b/idl/raydium_launchpad.json similarity index 100% rename from idl/bonk.json rename to idl/raydium_launchpad.json diff --git a/idl/raydium_pool_v4.json b/idl/raydium_pool_v4.json new file mode 100644 index 0000000..39d2ee9 --- /dev/null +++ b/idl/raydium_pool_v4.json @@ -0,0 +1,3400 @@ + +{ + "version": "4.0.0", + "name": "Raydium Liquidity Pool V4", + "instructions": [ + { + "name": "initializeStrategy", + "accounts": [ + { + "name": "admin", + "isMut": true, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyFeeAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "rent", + "isMut": false, + "isSigner": false + }, + { + "name": "ammProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammIdRewards", + "isMut": false, + "isSigner": false + }, + { + "name": "ammIdRewardsB", + "isMut": false, + "isSigner": false + }, + { + "name": "stakeProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolTkn", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "version", + "type": { + "defined": "ProtocolVerison" + } + } + ] + }, + { + "name": "initializeUserWithNonce", + "accounts": [ + { + "name": "userMainAccount", + "isMut": true, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + }, + { + "name": "systemProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "nonce", + "type": "u32" + }, + { + "name": "bumpSeed", + "type": "u8" + } + ] + }, + { + "name": "closeEmptyAccount", + "accounts": [ + { + "name": "userMainAccount", + "isMut": true, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "setPositionStopLoss", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "stopLossType", + "type": "u8" + }, + { + "name": "stopLossRatio", + "type": "u8" + } + ] + }, + { + "name": "setPositionRangeStop", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "rangeStopType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + } + ] + }, + { + "name": "transfer", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "TransferForInvestParam" + } + } + ] + }, + { + "name": "transferLp", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userFrcRewardsTknAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyFrcRewardsTknAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "TransferLpParam" + } + } + ] + }, + { + "name": "borrow", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "BorrowParam" + } + } + ] + }, + { + "name": "swapLimit", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumBids", + "isMut": true, + "isSigner": false + }, + { + "name": "serumAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "swapLimit", + "type": "u64" + } + ] + }, + { + "name": "swapBaseIn", + "accounts": [ + { + "name": "TokenProgram", + "isMut": false, + "isSigner": false + }, + { + "name": "AmmId", + "isMut": true, + "isSigner": false + }, + { + "name": "AmmAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "AmmOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "AmmTargetOrders", + "isMut": true, + "optional": true, + "isSigner": false + }, + { + "name": "PoolCoinTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "PoolPcTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "OpenBookMarket", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookBids", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookVaultAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookPcVaultAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "OpenBookVaultSigner", + "isMut": false, + "isSigner": false + }, + { + "name": "UserSourceTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "UserDestTokenAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "UserOwner", + "isMut": true, + "isSigner": true + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "SwapParam" + } + } + ] + }, + { + "name": "addLiquidity", + "docs": [ + "add liquidity" + ], + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "userRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "stakeLp", + "accounts": [ + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "raydiumStakingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "poolId", + "isMut": true, + "isSigner": false + }, + { + "name": "poolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "poolLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "unstakeLp", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "raydiumStakingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "poolId", + "isMut": true, + "isSigner": false + }, + { + "name": "poolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "poolLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "userRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "UnstakeLpParam" + } + } + ] + }, + { + "name": "unstakeLpWithType", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "raydiumStakingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "poolId", + "isMut": true, + "isSigner": false + }, + { + "name": "poolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "poolLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "userRewardsTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "WithdrawParam" + } + } + ] + }, + { + "name": "removeLiquidity", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "ammWithdrawQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "ammPoolTempLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "removeLiquidityLimit", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "ammWithdrawQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "ammPoolTempLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "limit", + "type": "u64" + } + ] + }, + { + "name": "swapForWithdrawLimit", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumBids", + "isMut": true, + "isSigner": false + }, + { + "name": "serumAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "swapLimit", + "type": "u64" + }, + { + "name": "withdrawType", + "type": "u8" + } + ] + }, + { + "name": "swapAndWithdraw", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumBids", + "isMut": true, + "isSigner": false + }, + { + "name": "serumAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "SwapAndWithdrawParam" + } + } + ] + }, + { + "name": "repayBorrowedPc", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "repayBorrowedCoin", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingMarketAuthorityInfo", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "userRepay", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfoAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "userTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "param", + "type": { + "defined": "UserRepayParam" + } + } + ] + }, + { + "name": "liquidateUnstakeLp", + "accounts": [ + { + "name": "liquidator", + "isMut": false, + "isSigner": true + }, + { + "name": "liquidatorLpTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyFarmInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "raydiumStakingProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "poolId", + "isMut": true, + "isSigner": false + }, + { + "name": "poolAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "poolLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "poolRewardTknAccountB", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "clock", + "isMut": false, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "lendingPoolInfoAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "userRewardsTknAccount", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyRewardsTknAccount", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "liquidateType", + "type": "u8" + } + ] + }, + { + "name": "liquidateRepayAndGetLp", + "accounts": [ + { + "name": "liquidator", + "isMut": false, + "isSigner": true + }, + { + "name": "userInfo", + "isMut": true, + "isSigner": false + }, + { + "name": "userLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "liquidatorLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "liquidatorTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "liquidatorTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "swapRewardsToTarget", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumBids", + "isMut": true, + "isSigner": false + }, + { + "name": "serumAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "direction", + "type": "u8" + } + ] + }, + { + "name": "swapRewards", + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumBids", + "isMut": true, + "isSigner": false + }, + { + "name": "serumAsks", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault0", + "isMut": true, + "isSigner": false + }, + { + "name": "serumTknVault1", + "isMut": true, + "isSigner": false + }, + { + "name": "serumVaultSinger", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "addRewardsToLiquidity", + "docs": [ + "add rewards to liquidity" + ], + "accounts": [ + { + "name": "userMainAccount", + "isMut": false, + "isSigner": true + }, + { + "name": "userLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyLpAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "raydiumAmmProgramId", + "isMut": false, + "isSigner": false + }, + { + "name": "ammId", + "isMut": true, + "isSigner": false + }, + { + "name": "ammAuthority", + "isMut": true, + "isSigner": false + }, + { + "name": "ammOpenOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTargetOrders", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "ammTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "lpMintAccount", + "isMut": true, + "isSigner": false + }, + { + "name": "serumMarketId", + "isMut": true, + "isSigner": false + }, + { + "name": "serumEventQueue", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminUpdateRewardsAmmId", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "rewardsAmmId", + "isMut": false, + "isSigner": false + }, + { + "name": "rewardsAmmIdB", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminUpdateStakeInfo", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "stakePoolId", + "isMut": false, + "isSigner": false + }, + { + "name": "stakePoolTkn", + "isMut": false, + "isSigner": false + } + ], + "args": [] + }, + { + "name": "adminUpdateMaxLeverage", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "newLeverage", + "type": "u8" + } + ] + }, + { + "name": "adminUpdateLiquidateLine", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "newLiquidateLine", + "type": "u8" + } + ] + }, + { + "name": "adminUpdateCompoundRewardsRate", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + } + ], + "args": [ + { + "name": "compoundRewardsRate", + "type": "u8" + } + ] + }, + { + "name": "adminRepayBadDebts", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "adminTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "adminTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyTknAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [ + { + "name": "tknRepay0", + "type": "u64" + }, + { + "name": "tknRepay1", + "type": "u64" + } + ] + }, + { + "name": "adminBurnBorrowCredit", + "accounts": [ + { + "name": "admin", + "isMut": false, + "isSigner": true + }, + { + "name": "strategyState", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyAuthority", + "isMut": false, + "isSigner": false + }, + { + "name": "creditMint0", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount0", + "isMut": true, + "isSigner": false + }, + { + "name": "creditMint1", + "isMut": true, + "isSigner": false + }, + { + "name": "strategyCreditAccount1", + "isMut": true, + "isSigner": false + }, + { + "name": "tokenProgramId", + "isMut": false, + "isSigner": false + } + ], + "args": [] + } + ], + "accounts": [ + { + "name": "StrategyState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolVersion", + "type": "u8" + }, + { + "name": "protocolSubVersion", + "type": "u8" + }, + { + "name": "lastUpdateSlot", + "type": "u64" + }, + { + "name": "totalLp", + "type": "u64" + }, + { + "name": "totalShares", + "type": "u64" + }, + { + "name": "totalBorrowed0", + "type": "u64" + }, + { + "name": "totalBorrowed1", + "type": "u64" + }, + { + "name": "pendingTkn0", + "type": "u64" + }, + { + "name": "pendingTkn1", + "type": "u64" + }, + { + "name": "pendingWithdrawLp", + "type": "u64" + }, + { + "name": "pendingRepay0", + "type": "u64" + }, + { + "name": "pendingRepay1", + "type": "u64" + }, + { + "name": "cumulatedBorrowRate0", + "type": "u128" + }, + { + "name": "cumulatedBorrowRate1", + "type": "u128" + }, + { + "name": "admin", + "type": "publicKey" + }, + { + "name": "authority", + "type": "publicKey" + }, + { + "name": "authorityNonce", + "type": "u8" + }, + { + "name": "feeAccount", + "type": "publicKey" + }, + { + "name": "tknAccount0", + "type": "publicKey" + }, + { + "name": "tknAccount1", + "type": "publicKey" + }, + { + "name": "lpAccount", + "type": "publicKey" + }, + { + "name": "rewardAccount", + "type": "publicKey" + }, + { + "name": "rewardAccountB", + "type": "publicKey" + }, + { + "name": "lendingProgramId", + "type": "publicKey" + }, + { + "name": "lendingPool0", + "type": "publicKey" + }, + { + "name": "strategyLendingCreditAccount0", + "type": "publicKey" + }, + { + "name": "lendingPool1", + "type": "publicKey" + }, + { + "name": "strategyLendingCreditAccount1", + "type": "publicKey" + }, + { + "name": "platformRewardsEnable", + "type": "u8" + }, + { + "name": "rewardsStartSlot", + "type": "u64" + }, + { + "name": "rewardsEndSlot", + "type": "u64" + }, + { + "name": "rewardsPerSlot", + "type": "u64" + }, + { + "name": "platformRewardsTknMint", + "type": "publicKey" + }, + { + "name": "platformRewardsTknAccount", + "type": "publicKey" + }, + { + "name": "accumulatedRewardsPerShare", + "type": "u128" + }, + { + "name": "maxLeverage", + "type": "u8" + }, + { + "name": "liquidateLine", + "type": "u8" + }, + { + "name": "compoundRewardsRate", + "type": "u8" + }, + { + "name": "ammProgramId", + "type": "publicKey" + }, + { + "name": "ammId", + "type": "publicKey" + }, + { + "name": "ammIdForRewards", + "type": "publicKey" + }, + { + "name": "ammIdForRewardsB", + "type": "publicKey" + }, + { + "name": "stakeProgramId", + "type": "publicKey" + }, + { + "name": "stakePoolId", + "type": "publicKey" + }, + { + "name": "stakePoolTkn", + "type": "publicKey" + }, + { + "name": "padding0", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, + { + "name": "UserInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u8" + }, + { + "name": "lastUpdateSlot", + "type": "u64" + }, + { + "name": "strategyStateAccount", + "type": "publicKey" + }, + { + "name": "userMainAccount", + "type": "publicKey" + }, + { + "name": "padding0", + "type": "u8" + }, + { + "name": "pendingInvestFlag", + "type": "u8" + }, + { + "name": "stopLoss", + "type": "u8" + }, + { + "name": "tkn0", + "type": "u64" + }, + { + "name": "tkn1", + "type": "u64" + }, + { + "name": "borrowed0", + "type": "u64" + }, + { + "name": "borrowed1", + "type": "u64" + }, + { + "name": "principle0", + "type": "u64" + }, + { + "name": "principle1", + "type": "u64" + }, + { + "name": "investedLp", + "type": "u64" + }, + { + "name": "lpShares", + "type": "u64" + }, + { + "name": "pendingWithdrawLp", + "type": "u64" + }, + { + "name": "pendingRepay0", + "type": "u64" + }, + { + "name": "pendingRepay1", + "type": "u64" + }, + { + "name": "cumulatedBorrowRate0", + "type": "u128" + }, + { + "name": "cumulatedBorrowRate1", + "type": "u128" + }, + { + "name": "platformRewardsDebt", + "type": "u128" + }, + { + "name": "pendingWithdrawFlag", + "type": "u8" + }, + { + "name": "takeProfitLine", + "type": "u16" + }, + { + "name": "stopPositionType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + }, + { + "name": "padding2", + "type": { + "array": [ + "u8", + 23 + ] + } + }, + { + "name": "accountNonce", + "type": "u32" + }, + { + "name": "isEmpty", + "type": "u8" + }, + { + "name": "bump", + "type": "u8" + } + ] + } + } + ], + "types": [ + { + "name": "ProtocolVerison", + "type": { + "kind": "struct", + "fields": [ + { + "name": "protocolVersion", + "type": "u8" + }, + { + "name": "subVersion", + "type": "u8" + } + ] + } + }, + { + "name": "PositionStopParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "liquidateType", + "type": "u8" + }, + { + "name": "stopLossType", + "type": "u8" + }, + { + "name": "stopLossRatio", + "type": "u8" + }, + { + "name": "takeProfitType", + "type": "u8" + }, + { + "name": "takeProfitRatio", + "type": "u16" + }, + { + "name": "rangeStopType", + "type": "u8" + }, + { + "name": "priceRange0", + "type": "u128" + }, + { + "name": "priceRange1", + "type": "u128" + } + ] + } + }, + { + "name": "TransferForInvestParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "stopLoss", + "type": "u8" + }, + { + "name": "amount0", + "type": "u64" + }, + { + "name": "amount1", + "type": "u64" + } + ] + } + }, + { + "name": "TransferLpParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lpAmount", + "type": "u64" + } + ] + } + }, + { + "name": "BorrowParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "borrow0", + "type": "u64" + }, + { + "name": "borrow1", + "type": "u64" + } + ] + } + }, + { + "name": "SwapParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "amountIn", + "type": "u64" + }, + { + "name": "minAmountOut", + "type": "u64" + } + ] + } + }, + { + "name": "UnstakeLpParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "sharesAmount", + "type": "u64" + } + ] + } + }, + { + "name": "WithdrawParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "withdrawType", + "type": "u8" + }, + { + "name": "sharesAmount", + "type": "u64" + } + ] + } + }, + { + "name": "SwapAndWithdrawParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "withdrawType", + "type": "u8" + } + ] + } + }, + { + "name": "UserRepayParam", + "type": { + "kind": "struct", + "fields": [ + { + "name": "repaySide", + "type": "u8" + }, + { + "name": "repayAmount", + "type": "u64" + } + ] + } + }, + { + "name": "RaydiumError", + "type": { + "kind": "enum", + "variants": [ + { + "name": "InvalidVersion" + } + ] + } + } + ], + "errors": [ + { + "code": 6000, + "name": "MathOverflow", + "msg": "Math Overflow" + }, + { + "code": 6001, + "name": "InvalidInstruction", + "msg": "Invalid Instruction" + }, + { + "code": 6002, + "name": "InvalidProgramAddress", + "msg": "Invalid program derivated address or nonce" + }, + { + "code": 6003, + "name": "InvalidProtocolVersion", + "msg": "Invalid Protocol Version" + }, + { + "code": 6004, + "name": "InvalidData", + "msg": "Invalid data" + }, + { + "code": 6005, + "name": "AlreadyInUse", + "msg": "Already in use" + }, + { + "code": 6006, + "name": "InvalidTokenMint", + "msg": "Invalid token mint" + }, + { + "code": 6007, + "name": "InsufficientBalance", + "msg": "Insufficient balance" + }, + { + "code": 6008, + "name": "UnexpectedError", + "msg": "UnexpectedError" + }, + { + "code": 6009, + "name": "InvalidStrategyAccount", + "msg": "Invalid Strategy Account" + }, + { + "code": 6010, + "name": "InvalidStrategyAuthority", + "msg": "Invalid Strategy Authority" + }, + { + "code": 6011, + "name": "InvalidUserInfoAccount", + "msg": "Invalid UserInfo Account" + }, + { + "code": 6012, + "name": "InvalidTokenAccount", + "msg": "Invalid Token Account" + }, + { + "code": 6013, + "name": "InvalidTokenAccountOwner", + "msg": "Invalid Token Account Owner" + }, + { + "code": 6014, + "name": "InvalidStrategyState", + "msg": "Invalid Strategy state" + }, + { + "code": 6015, + "name": "InvalidLendingPool", + "msg": "Invalid lending pool" + }, + { + "code": 6016, + "name": "UnsupportedFeature", + "msg": "Unsupported Feature" + }, + { + "code": 6017, + "name": "NeedAdminPermission", + "msg": "Need Admin Permission" + }, + { + "code": 6018, + "name": "AlreadyInLiquidationOrWithdraw", + "msg": "Already in liquidation or withdraw" + }, + { + "code": 6019, + "name": "InvalidLiquidator", + "msg": "Invalid Liquidator" + }, + { + "code": 6020, + "name": "InvalidBorrowAmount", + "msg": "Invalid Borrow Amount" + }, + { + "code": 6021, + "name": "AmountTooLarge", + "msg": "Amount Too Large" + }, + { + "code": 6022, + "name": "CurrentSlotTooOld", + "msg": "Current Slot Too Old" + }, + { + "code": 6023, + "name": "AccountNotEmpty", + "msg": "Account Not Empty" + }, + { + "code": 6024, + "name": "LeverageTooHigh", + "msg": "Leverage Too High" + } + ], + "metadata": { + "instruction_selector_type": "index" + } +} diff --git a/src/client/mod.rs b/src/client/mod.rs index 6bb8319..31b6eb8 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -187,8 +187,8 @@ pub struct SimpleBuyParams { /// Recent blockhash for non-nonce transactions. /// /// The SDK intentionally does not fetch blockhash on the hot path. Use - /// [`SimpleBuyParams::with_durable_nonce`] instead when submitting multiple - /// SWQoS lanes against a pinned nonce. + /// [`SimpleBuyParams::with_durable_nonce`] only when the caller specifically + /// wants durable-nonce transactions. pub recent_blockhash: Option, /// Protocol-specific parameters, for example `DexParamEnum::PumpFun(...)`. pub extension_params: DexParamEnum, @@ -196,12 +196,15 @@ pub struct SimpleBuyParams { pub gas_fee_strategy: GasFeeStrategy, /// ATA creation/close behavior. See [`AccountPolicy`]. pub account_policy: AccountPolicy, - /// Optional Address Lookup Table to reduce transaction size. - pub address_lookup_table_account: Option, + /// Optional Address Lookup Tables to reduce transaction size. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub address_lookup_table_accounts: Vec, /// Wait until the transaction is confirmed before returning. pub wait_tx_confirmed: bool, - /// Fast-submit mode only: wait for every SWQoS route's submit response so all - /// signatures can be returned. + /// Wait for every SWQoS route's submit response so all signatures can be + /// returned. Useful when confirming through poll-any semantics or monitoring + /// route variants externally. Recent-blockhash variants are not mutually + /// exclusive; durable nonce variants are. pub wait_for_all_submits: bool, /// Durable nonce info. Mutually exclusive with `recent_blockhash`. pub durable_nonce: Option, @@ -235,12 +238,15 @@ pub struct SimpleSellParams { pub gas_fee_strategy: GasFeeStrategy, /// ATA creation/close behavior. See [`AccountPolicy`]. pub account_policy: AccountPolicy, - /// Optional Address Lookup Table to reduce transaction size. - pub address_lookup_table_account: Option, + /// Optional Address Lookup Tables to reduce transaction size. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub address_lookup_table_accounts: Vec, /// Wait until the transaction is confirmed before returning. pub wait_tx_confirmed: bool, - /// Fast-submit mode only: wait for every SWQoS route's submit response so all - /// signatures can be returned. + /// Wait for every SWQoS route's submit response so all signatures can be + /// returned. Useful when confirming through poll-any semantics or monitoring + /// route variants externally. Recent-blockhash variants are not mutually + /// exclusive; durable nonce variants are. pub wait_for_all_submits: bool, /// Durable nonce info. Mutually exclusive with `recent_blockhash`. pub durable_nonce: Option, @@ -281,7 +287,7 @@ impl SimpleBuyParams { extension_params, gas_fee_strategy, account_policy: AccountPolicy::Auto, - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: false, wait_for_all_submits: false, durable_nonce: None, @@ -330,9 +336,10 @@ impl SimpleBuyParams { self } - /// Attach an Address Lookup Table to reduce transaction size. - pub fn address_lookup_table_account(mut self, value: AddressLookupTableAccount) -> Self { - self.address_lookup_table_account = Some(value); + /// Attach Address Lookup Tables to reduce transaction size. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub fn address_lookup_table_accounts(mut self, values: Vec) -> Self { + self.address_lookup_table_accounts = values; self } @@ -352,7 +359,7 @@ impl SimpleBuyParams { self } - /// In fast-submit mode, wait for all SWQoS submit responses and return every signature. + /// Wait for all SWQoS submit responses and return submitted signatures. pub fn wait_for_all_submits(mut self, value: bool) -> Self { self.wait_for_all_submits = value; self @@ -401,7 +408,7 @@ impl SimpleSellParams { extension_params, gas_fee_strategy, account_policy: AccountPolicy::Auto, - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: false, wait_for_all_submits: false, durable_nonce: None, @@ -449,9 +456,10 @@ impl SimpleSellParams { self } - /// Attach an Address Lookup Table to reduce transaction size. - pub fn address_lookup_table_account(mut self, value: AddressLookupTableAccount) -> Self { - self.address_lookup_table_account = Some(value); + /// Attach Address Lookup Tables to reduce transaction size. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub fn address_lookup_table_accounts(mut self, values: Vec) -> Self { + self.address_lookup_table_accounts = values; self } @@ -471,7 +479,7 @@ impl SimpleSellParams { self } - /// In fast-submit mode, wait for all SWQoS submit responses and return every signature. + /// Wait for all SWQoS submit responses and return submitted signatures. pub fn wait_for_all_submits(mut self, value: bool) -> Self { self.wait_for_all_submits = value; self @@ -782,14 +790,16 @@ pub struct TradeBuyParams { /// Protocol-specific parameters (PumpFun, Raydium, etc.) pub extension_params: DexParamEnum, // Extended configuration - /// Optional address lookup table for transaction size optimization - pub address_lookup_table_account: Option, + /// Optional address lookup tables for transaction size optimization. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub address_lookup_table_accounts: Vec, /// Whether to wait for transaction confirmation before returning pub wait_tx_confirmed: bool, - /// Fast-submit only (`wait_tx_confirmed = false`): when true, wait for every - /// SWQOS route's HTTP submit response so all submitted signatures are - /// returned. Set to true when confirming externally against a pinned - /// durable nonce; defaults to false. See `SwapParams.wait_for_all_submits`. + /// When true, wait for every SWQOS route's HTTP submit response so all + /// submitted signatures are returned. This applies whether SDK confirmation + /// is enabled or the caller monitors externally. Recent-blockhash route + /// variants are not mutually exclusive; durable nonce variants are. + /// Defaults to false. See `SwapParams.wait_for_all_submits`. pub wait_for_all_submits: bool, /// Whether to create input token associated token account pub create_input_token_ata: bool, @@ -839,14 +849,16 @@ pub struct TradeSellParams { /// Protocol-specific parameters (PumpFun, Raydium, etc.) pub extension_params: DexParamEnum, // Extended configuration - /// Optional address lookup table for transaction size optimization - pub address_lookup_table_account: Option, + /// Optional address lookup tables for transaction size optimization. + /// Pass one element for a single ALT or multiple elements for multi-ALT. + pub address_lookup_table_accounts: Vec, /// Whether to wait for transaction confirmation before returning pub wait_tx_confirmed: bool, - /// Fast-submit only (`wait_tx_confirmed = false`): when true, wait for every - /// SWQOS route's HTTP submit response so all submitted signatures are - /// returned. Set to true when confirming externally against a pinned - /// durable nonce; defaults to false. See `SwapParams.wait_for_all_submits`. + /// When true, wait for every SWQOS route's HTTP submit response so all + /// submitted signatures are returned. This applies whether SDK confirmation + /// is enabled or the caller monitors externally. Recent-blockhash route + /// variants are not mutually exclusive; durable nonce variants are. + /// Defaults to false. See `SwapParams.wait_for_all_submits`. pub wait_for_all_submits: bool, /// Whether to create output token associated token account pub create_output_token_ata: bool, @@ -906,7 +918,7 @@ impl From for TradeBuyParams { slippage_basis_points: params.slippage_basis_points, recent_blockhash: params.recent_blockhash, extension_params: params.extension_params, - address_lookup_table_account: params.address_lookup_table_account, + address_lookup_table_accounts: params.address_lookup_table_accounts, wait_tx_confirmed: params.wait_tx_confirmed, wait_for_all_submits: params.wait_for_all_submits, create_input_token_ata, @@ -942,7 +954,7 @@ impl From for TradeSellParams { recent_blockhash: params.recent_blockhash, with_tip: params.with_tip, extension_params: params.extension_params, - address_lookup_table_account: params.address_lookup_table_account, + address_lookup_table_accounts: params.address_lookup_table_accounts, wait_tx_confirmed: params.wait_tx_confirmed, wait_for_all_submits: params.wait_for_all_submits, create_output_token_ata, @@ -1381,7 +1393,7 @@ impl TradingClient { output_token_program: None, input_amount: Some(params.input_token_amount), slippage_basis_points: params.slippage_basis_points, - address_lookup_table_account: params.address_lookup_table_account, + address_lookup_table_accounts: params.address_lookup_table_accounts, recent_blockhash: params.recent_blockhash, wait_tx_confirmed: params.wait_tx_confirmed, protocol_params, @@ -1509,7 +1521,7 @@ impl TradingClient { output_token_program: None, input_amount: Some(params.input_token_amount), slippage_basis_points: params.slippage_basis_points, - address_lookup_table_account: params.address_lookup_table_account, + address_lookup_table_accounts: params.address_lookup_table_accounts, recent_blockhash: params.recent_blockhash, wait_tx_confirmed: params.wait_tx_confirmed, protocol_params, @@ -1860,7 +1872,7 @@ mod tests { extension_params: dummy_pumpfun_params(), gas_fee_strategy: GasFeeStrategy::new(), account_policy: AccountPolicy::HotPathMinimal, - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: false, wait_for_all_submits: false, durable_nonce: None, @@ -1891,7 +1903,7 @@ mod tests { extension_params: dummy_pumpfun_params(), gas_fee_strategy: GasFeeStrategy::new(), account_policy: AccountPolicy::Auto, - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: false, wait_for_all_submits: false, durable_nonce: None, @@ -1931,6 +1943,35 @@ mod tests { assert!(!low.wait_tx_confirmed); } + #[test] + fn simple_buy_builder_maps_multiple_lookup_tables() { + let alt1 = AddressLookupTableAccount { + key: Pubkey::new_unique(), + addresses: vec![Pubkey::new_unique()], + }; + let alt2 = AddressLookupTableAccount { + key: Pubkey::new_unique(), + addresses: vec![Pubkey::new_unique()], + }; + + let simple = SimpleBuyParams::new( + DexType::PumpFun, + TradeTokenType::SOL, + Pubkey::new_unique(), + BuyAmount::ExactInput(10_000), + dummy_pumpfun_params(), + Hash::new_unique(), + GasFeeStrategy::new(), + ) + .address_lookup_table_accounts(vec![alt1.clone(), alt2.clone()]); + + let low: TradeBuyParams = simple.into(); + + assert_eq!(low.address_lookup_table_accounts.len(), 2); + assert_eq!(low.address_lookup_table_accounts[0].key, alt1.key); + assert_eq!(low.address_lookup_table_accounts[1].key, alt2.key); + } + #[test] fn simple_buy_builder_can_use_durable_nonce() { let nonce_account = Pubkey::new_unique(); @@ -1970,7 +2011,7 @@ mod tests { extension_params: dummy_pumpfun_params(), gas_fee_strategy: GasFeeStrategy::new(), account_policy: AccountPolicy::Auto, - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), wait_tx_confirmed: false, wait_for_all_submits: false, durable_nonce: None, diff --git a/src/instruction/bonk.rs b/src/instruction/bonk.rs index b429c46..35ec5bc 100755 --- a/src/instruction/bonk.rs +++ b/src/instruction/bonk.rs @@ -365,7 +365,7 @@ mod tests { output_token_program: None, input_amount: Some(100_000), slippage_basis_points: Some(100), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::Bonk(bonk_params()), diff --git a/src/instruction/meteora_damm_v2.rs b/src/instruction/meteora_damm_v2.rs index a6878cf..0b9ba94 100644 --- a/src/instruction/meteora_damm_v2.rs +++ b/src/instruction/meteora_damm_v2.rs @@ -347,7 +347,7 @@ mod tests { output_token_program: None, input_amount: Some(100_000), slippage_basis_points: Some(100), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::MeteoraDammV2(protocol_params), diff --git a/src/instruction/pumpfun.rs b/src/instruction/pumpfun.rs index 8f35f36..fe85a05 100644 --- a/src/instruction/pumpfun.rs +++ b/src/instruction/pumpfun.rs @@ -944,7 +944,7 @@ mod tests { output_token_program: None, input_amount: Some(10_000_000), slippage_basis_points: Some(300), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::PumpFun(params), @@ -1125,7 +1125,7 @@ mod tests { 150_000, 500_000, &business_instructions, - None, + &[], Some(solana_hash::Hash::new_unique()), None, "PumpFun", @@ -1160,7 +1160,7 @@ mod tests { 150_000, 500_000, &business_instructions, - None, + &[], Some(solana_hash::Hash::new_unique()), None, "PumpFun", diff --git a/src/instruction/pumpswap.rs b/src/instruction/pumpswap.rs index d036d83..3d7c18f 100755 --- a/src/instruction/pumpswap.rs +++ b/src/instruction/pumpswap.rs @@ -572,7 +572,7 @@ mod tests { output_token_program: None, input_amount: Some(100_000), slippage_basis_points: Some(100), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::PumpSwap(pumpswap_params()), diff --git a/src/instruction/raydium_amm_v4.rs b/src/instruction/raydium_amm_v4.rs index cc1f58f..8a52eef 100755 --- a/src/instruction/raydium_amm_v4.rs +++ b/src/instruction/raydium_amm_v4.rs @@ -365,7 +365,7 @@ mod tests { output_token_program: None, input_amount: Some(100_000), slippage_basis_points: Some(100), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::RaydiumAmmV4(protocol_params), diff --git a/src/instruction/raydium_cpmm.rs b/src/instruction/raydium_cpmm.rs index 89e0566..2ad40a1 100755 --- a/src/instruction/raydium_cpmm.rs +++ b/src/instruction/raydium_cpmm.rs @@ -377,7 +377,7 @@ mod tests { output_token_program: None, input_amount: Some(100_000), slippage_basis_points: Some(100), - address_lookup_table_account: None, + address_lookup_table_accounts: Vec::new(), recent_blockhash: None, wait_tx_confirmed: false, protocol_params: DexParamEnum::RaydiumCpmm(cpmm_params()), diff --git a/src/trading/common/transaction_builder.rs b/src/trading/common/transaction_builder.rs index cf83ee6..c6162e7 100755 --- a/src/trading/common/transaction_builder.rs +++ b/src/trading/common/transaction_builder.rs @@ -36,7 +36,7 @@ pub fn build_transaction( unit_limit: u32, unit_price: u64, business_instructions: &[Instruction], - address_lookup_table_account: Option<&AddressLookupTableAccount>, + address_lookup_table_accounts: &[AddressLookupTableAccount], recent_blockhash: Option, middleware_manager: Option<&Arc>, protocol_name: &str, @@ -51,7 +51,7 @@ pub fn build_transaction( unit_limit, unit_price, business_instructions, - address_lookup_table_account, + address_lookup_table_accounts, recent_blockhash, middleware_manager, protocol_name, @@ -74,7 +74,7 @@ pub fn build_transaction( with_tip && tip_amount > 0.0, unit_limit, unit_price, - address_lookup_table_account.is_some() + address_lookup_table_accounts.len() ); } if serialized_len <= PACKET_DATA_SIZE { @@ -93,7 +93,7 @@ fn build_transaction_inner( unit_limit: u32, unit_price: u64, business_instructions: &[Instruction], - address_lookup_table_account: Option<&AddressLookupTableAccount>, + address_lookup_table_accounts: &[AddressLookupTableAccount], recent_blockhash: Option, middleware_manager: Option<&Arc>, protocol_name: &str, @@ -127,7 +127,7 @@ fn build_transaction_inner( build_versioned_transaction( payer, instructions, - address_lookup_table_account, + address_lookup_table_accounts, blockhash, middleware_manager, protocol_name, @@ -138,7 +138,7 @@ fn build_transaction_inner( fn build_versioned_transaction( payer: &Arc, instructions: Vec, - address_lookup_table_account: Option<&AddressLookupTableAccount>, + address_lookup_table_accounts: &[AddressLookupTableAccount], blockhash: Hash, middleware_manager: Option<&Arc>, protocol_name: &str, @@ -156,7 +156,7 @@ fn build_versioned_transaction( let build_result = builder.build_zero_alloc( &payer.pubkey(), &full_instructions, - address_lookup_table_account, + address_lookup_table_accounts, blockhash, ); release_builder(builder); @@ -190,7 +190,7 @@ mod tests { 80_000, 100_000, &business_instructions, - None, + &[], Some(Hash::new_unique()), None, "test", diff --git a/src/trading/core/async_executor.rs b/src/trading/core/async_executor.rs index 7d67a7b..244f4b7 100644 --- a/src/trading/core/async_executor.rs +++ b/src/trading/core/async_executor.rs @@ -47,12 +47,13 @@ const SWQOS_POOL_WORKERS: usize = 18; const SWQOS_QUEUE_CAP: usize = 128; const SWQOS_DEDICATED_DEFAULT_THREADS: usize = 18; const FAST_SUBMIT_RESULT_TIMEOUT: Duration = Duration::from_secs(5); +const FAST_SUBMIT_DRAIN_GRACE: Duration = Duration::from_millis(20); /// Shared across all jobs in one batch; built once, cloned as single Arc per job (minimal hot-path clone). struct SwqosSharedContext { payer: Arc, instructions: Arc>, - address_lookup_table_account: Option, + address_lookup_table_accounts: Arc>, recent_blockhash: Option, durable_nonce: Option, middleware_manager: Option>, @@ -92,7 +93,7 @@ async fn run_one_swqos_job(job: SwqosJob) { job.unit_limit, job.unit_price, s.instructions.as_ref(), - s.address_lookup_table_account.as_ref(), + s.address_lookup_table_accounts.as_slice(), s.recent_blockhash, s.middleware_manager.as_ref(), s.protocol_name, @@ -508,10 +509,11 @@ impl ResultCollector { } } - /// 等待全部任务完成(不等待链上确认),然后收集并返回所有签名。用于「多路提交」时返回多笔签名。 + /// 等待全部任务完成(不等待链上确认),然后收集并返回所有已返回的签名。 /// 轮询间隔 2ms,避免 50ms 间隔在最后一笔返回时多等几十 ms 拉高 submit 耗时。 - /// Re-enabled via `SwapParams.wait_for_all_submits` for callers that confirm - /// externally against a pinned durable nonce and need every submitted sig. + /// Re-enabled via `SwapParams.wait_for_all_submits` for callers that need + /// every submitted signature, either for external monitoring or for + /// executor-level poll-any confirmation after parallel submit. async fn wait_for_all_submitted( &self, timeout_secs: u64, @@ -525,21 +527,10 @@ impl ResultCollector { } tokio::time::sleep(poll_interval).await; } - // 「不等待链上确认」仍会等各 SWQOS 的 HTTP 回包;主循环在收齐或触达 `timeout_secs` 后结束。 - // 若主窗口到时仍有未回包通道,晚到的 TaskResult 若立刻 drain 会丢签名——仅在该路径上拉长 grace。 - let all_submitted = self.completed_count.load(Ordering::Acquire) >= self.total_tasks; - if all_submitted { - tokio::task::yield_now().await; - } else { - tokio::time::sleep(Duration::from_millis(600)).await; - while self.completed_count.load(Ordering::Acquire) < self.total_tasks { - if start.elapsed() > primary + Duration::from_secs(6) { - break; - } - tokio::time::sleep(Duration::from_millis(20)).await; - } - tokio::time::sleep(Duration::from_millis(120)).await; - } + // Bound the opt-in "all submits" path tightly. A slow relay must not + // delay poll-any confirmation by multiple seconds after the submit + // window; give only a short grace for a just-finished worker to publish. + tokio::time::sleep(FAST_SUBMIT_DRAIN_GRACE).await; self.get_first() } } @@ -608,7 +599,7 @@ pub async fn execute_parallel( swqos_clients: &[Arc], payer: Arc, instructions: Vec, - address_lookup_table_account: Option, + address_lookup_table_accounts: Vec, recent_blockhash: Option, durable_nonce: Option, middleware_manager: Option>, @@ -660,17 +651,13 @@ pub async fn execute_parallel( return Err(anyhow!("No available gas fee strategy configs")); } - if is_buy && selected_task_configs.len() > 1 && durable_nonce.is_none() { - return Err(anyhow!("Multiple swqos transactions require durable_nonce to be set.",)); - } - // Task preparation completed: one shared context (clone once per batch), then minimal per-task data. let channel_count = selected_task_configs.len().max(1); let collector = Arc::new(ResultCollector::new(channel_count)); let shared = Arc::new(SwqosSharedContext { payer, instructions, - address_lookup_table_account, + address_lookup_table_accounts: Arc::new(address_lookup_table_accounts), recent_blockhash, durable_nonce, middleware_manager, @@ -848,4 +835,18 @@ mod tests { assert_eq!(selected[0].gas_fee_config.2.cu_price, 700_000); assert_eq!(selected[0].gas_fee_config.2.tip, 0.0); } + + #[tokio::test] + async fn wait_for_all_submitted_timeout_is_bounded() { + let collector = ResultCollector::new(1); + let start = Instant::now(); + + let result = collector.wait_for_all_submitted(0).await; + + assert!(result.is_none()); + assert!( + start.elapsed() < Duration::from_millis(150), + "wait_for_all_submitted should not add multi-second grace after timeout" + ); + } } diff --git a/src/trading/core/executor.rs b/src/trading/core/executor.rs index 26a7077..18b7144 100755 --- a/src/trading/core/executor.rs +++ b/src/trading/core/executor.rs @@ -96,6 +96,7 @@ impl TradeExecutor for GenericTradeExecutor { total_start.as_ref().map(|s| s.elapsed()).unwrap_or(Duration::ZERO); let before_submit_us = (params.log_enabled && crate::common::sdk_log::sdk_log_enabled()) .then(crate::common::clock::now_micros); + let address_lookup_table_accounts = params.address_lookup_table_accounts.clone(); if params.simulate { let send_start = crate::common::sdk_log::sdk_log_enabled().then(Instant::now); @@ -103,7 +104,7 @@ impl TradeExecutor for GenericTradeExecutor { params.rpc, params.payer, final_instructions, - params.address_lookup_table_account, + address_lookup_table_accounts, params.recent_blockhash, params.durable_nonce, params.middleware_manager, @@ -157,16 +158,16 @@ impl TradeExecutor for GenericTradeExecutor { } let need_confirm = params.wait_tx_confirmed; - // When the caller confirms externally (need_confirm = false) and opts in - // via SwapParams.wait_for_all_submits, return every route's signature so - // pinned-nonce confirmation can poll all of them. - let wait_for_all_submits = !need_confirm && params.wait_for_all_submits; + // Each SWQOS lane may submit a distinct transaction because relay tips + // can use different accounts, so confirmation must be able to poll every + // returned signature when the caller opts in. + let wait_for_all_submits = params.wait_for_all_submits; let sender_config = params.sender_concurrency_config(); let result = execute_parallel( params.swqos_clients.as_slice(), params.payer, final_instructions, - params.address_lookup_table_account, + address_lookup_table_accounts, params.recent_blockhash, params.durable_nonce, params.middleware_manager, @@ -253,7 +254,7 @@ async fn simulate_transaction( rpc: Option>, payer: Arc, instructions: Vec, - address_lookup_table_account: Option, + address_lookup_table_accounts: Vec, recent_blockhash: Option, durable_nonce: Option, middleware_manager: Option>, @@ -288,7 +289,7 @@ async fn simulate_transaction( unit_limit, unit_price, &instructions, - address_lookup_table_account.as_ref(), + address_lookup_table_accounts.as_slice(), recent_blockhash, middleware_manager.as_ref(), protocol_name, diff --git a/src/trading/core/params/dex_swap.rs b/src/trading/core/params/dex_swap.rs index 62f0cae..7471d4e 100644 --- a/src/trading/core/params/dex_swap.rs +++ b/src/trading/core/params/dex_swap.rs @@ -61,7 +61,7 @@ pub struct SwapParams { pub output_token_program: Option, pub input_amount: Option, pub slippage_basis_points: Option, - pub address_lookup_table_account: Option, + pub address_lookup_table_accounts: Vec, pub recent_blockhash: Option, pub wait_tx_confirmed: bool, pub protocol_params: DexParamEnum, @@ -82,13 +82,15 @@ pub struct SwapParams { pub simulate: bool, /// Whether to output SDK logs (from TradeConfig.log_enabled). pub log_enabled: bool, - /// Fast-submit only (`wait_tx_confirmed = false`): when true, wait for every - /// SWQOS route's HTTP submit response so all submitted signatures are - /// returned. Defaults to false (post-4.0.11 behaviour: return after the - /// first route accepts). Set to true when the caller does its own on-chain - /// confirmation against a pinned durable nonce — only one route's tx can - /// land, but the caller cannot know which in advance, so it needs every - /// signature to poll via `getSignatureStatuses`. + /// When true, wait for every SWQOS route's HTTP submit response before + /// returning so the result includes all submitted signatures. + /// + /// This is useful when confirmation or external monitoring polls all + /// signatures: each route can submit a distinct transaction because relay + /// tips may use different accounts. With a durable nonce, at most one route + /// can consume the nonce; with a recent blockhash, multiple route variants + /// may be valid, so callers must choose strategy and account state + /// accordingly. Defaults to false for lower submit latency. pub wait_for_all_submits: bool, /// Use dedicated sender threads (internal; set via client.with_dedicated_sender_threads()). pub use_dedicated_sender_threads: bool, diff --git a/src/trading/core/transaction_pool.rs b/src/trading/core/transaction_pool.rs index 3f5b3cf..5e4f64a 100644 --- a/src/trading/core/transaction_pool.rs +++ b/src/trading/core/transaction_pool.rs @@ -55,7 +55,7 @@ impl PreallocatedTxBuilder { /// /// # 交易版本自动选择 /// - /// - **有地址查找表** (`lookup_table = Some`): 使用 `VersionedMessage::V0` + /// - **有地址查找表** (`lookup_tables` 非空): 使用 `VersionedMessage::V0` /// - 支持地址查找表压缩 /// - 减少交易大小 /// - 需要 RPC 支持 V0 @@ -69,11 +69,11 @@ impl PreallocatedTxBuilder { /// /// ```rust,ignore /// // 无查找表 -> Legacy 消息 - /// let msg = builder.build_zero_alloc(&payer, &ixs, None, blockhash); + /// let msg = builder.build_zero_alloc(&payer, &ixs, &[], blockhash); /// assert!(matches!(msg, VersionedMessage::Legacy(_))); /// /// // 有查找表 -> V0 消息 - /// let msg = builder.build_zero_alloc(&payer, &ixs, Some(table_key), blockhash); + /// let msg = builder.build_zero_alloc(&payer, &ixs, &[lookup_table], blockhash); /// assert!(matches!(msg, VersionedMessage::V0(_))); /// ``` #[inline(always)] @@ -81,17 +81,17 @@ impl PreallocatedTxBuilder { &mut self, payer: &Pubkey, instructions: &[Instruction], - address_lookup_table_account: Option<&AddressLookupTableAccount>, + address_lookup_table_accounts: &[AddressLookupTableAccount], recent_blockhash: Hash, ) -> Result { self.reset(); self.instructions.extend_from_slice(instructions); - if let Some(alt) = address_lookup_table_account { + if !address_lookup_table_accounts.is_empty() { let message = v0::Message::try_compile( payer, &self.instructions, - std::slice::from_ref(alt), + address_lookup_table_accounts, recent_blockhash, )?; Ok(VersionedMessage::V0(message))