UNPKG

@orca-so/whirlpools-sdk

Version:

Typescript SDK to interact with Orca's Whirlpool program.

1,502 lines 258 kB
export type Whirlpool = { "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; "metadata": { "name": "whirlpool"; "version": "0.9.0"; "spec": "0.1.0"; }; "instructions": [ { "name": "closeBundledPosition"; "docs": [ "Close a bundled position in a Whirlpool.", "", "### Authority", "- `position_bundle_authority` - authority that owns the token corresponding to this desired position bundle.", "", "### Parameters", "- `bundle_index` - The bundle index that we'd like to close.", "", "#### Special Errors", "- `InvalidBundleIndex` - If the provided bundle index is out of bounds.", "- `ClosePositionNotEmpty` - The provided position account is not empty." ]; "discriminator": [ 41, 36, 216, 245, 27, 85, 103, 67 ]; "accounts": [ { "name": "bundledPosition"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 98, 117, 110, 100, 108, 101, 100, 95, 112, 111, 115, 105, 116, 105, 111, 110 ]; }, { "kind": "account"; "path": "position_bundle.position_bundle_mint"; "account": "positionBundle"; }, { "kind": "arg"; "path": "bundleIndex"; } ]; }; }, { "name": "positionBundle"; "writable": true; }, { "name": "positionBundleTokenAccount"; }, { "name": "positionBundleAuthority"; "signer": true; }, { "name": "receiver"; "writable": true; } ]; "args": [ { "name": "bundleIndex"; "type": "u16"; } ]; }, { "name": "closePosition"; "docs": [ "Close a position in a Whirlpool. Burns the position token in the owner's wallet.", "", "### Authority", "- \"position_authority\" - The authority that owns the position token.", "", "#### Special Errors", "- `ClosePositionNotEmpty` - The provided position account is not empty." ]; "discriminator": [ 123, 134, 81, 0, 49, 68, 98, 98 ]; "accounts": [ { "name": "positionAuthority"; "signer": true; }, { "name": "receiver"; "writable": true; }, { "name": "position"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ]; }, { "kind": "account"; "path": "positionMint"; } ]; }; }, { "name": "positionMint"; "writable": true; }, { "name": "positionTokenAccount"; "writable": true; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; } ]; "args": []; }, { "name": "closePositionWithTokenExtensions"; "docs": [ "Close a position in a Whirlpool. Burns the position token in the owner's wallet.", "Mint and TokenAccount are based on Token-2022. And Mint accout will be also closed.", "", "### Authority", "- \"position_authority\" - The authority that owns the position token.", "", "#### Special Errors", "- `ClosePositionNotEmpty` - The provided position account is not empty." ]; "discriminator": [ 1, 182, 135, 59, 155, 25, 99, 223 ]; "accounts": [ { "name": "positionAuthority"; "signer": true; }, { "name": "receiver"; "writable": true; }, { "name": "position"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 112, 111, 115, 105, 116, 105, 111, 110 ]; }, { "kind": "account"; "path": "positionMint"; } ]; }; }, { "name": "positionMint"; "writable": true; }, { "name": "positionTokenAccount"; "writable": true; }, { "name": "token2022Program"; "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; } ]; "args": []; }, { "name": "collectFees"; "docs": [ "Collect fees accrued for this position.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position." ]; "discriminator": [ 164, 152, 207, 99, 30, 186, 19, 182 ]; "accounts": [ { "name": "whirlpool"; "relations": [ "position" ]; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; } ]; "args": []; }, { "name": "collectFeesV2"; "docs": [ "Collect fees accrued for this position.", "This instruction works with both Token and Token-2022.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position." ]; "discriminator": [ 207, 117, 95, 191, 229, 180, 226, 15 ]; "accounts": [ { "name": "whirlpool"; "relations": [ "position" ]; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; } ]; "args": [ { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "collectProtocolFees"; "docs": [ "Collect the protocol fees accrued in this Whirlpool", "", "### Authority", "- `collect_protocol_fees_authority` - assigned authority in the WhirlpoolConfig that can collect protocol fees" ]; "discriminator": [ 22, 67, 23, 98, 150, 178, 70, 220 ]; "accounts": [ { "name": "whirlpoolsConfig"; "relations": [ "whirlpool" ]; }, { "name": "whirlpool"; "writable": true; }, { "name": "collectProtocolFeesAuthority"; "signer": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tokenDestinationA"; "writable": true; }, { "name": "tokenDestinationB"; "writable": true; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; } ]; "args": []; }, { "name": "collectProtocolFeesV2"; "docs": [ "Collect the protocol fees accrued in this Whirlpool", "This instruction works with both Token and Token-2022.", "", "### Authority", "- `collect_protocol_fees_authority` - assigned authority in the WhirlpoolConfig that can collect protocol fees" ]; "discriminator": [ 103, 128, 222, 134, 114, 200, 22, 200 ]; "accounts": [ { "name": "whirlpoolsConfig"; "relations": [ "whirlpool" ]; }, { "name": "whirlpool"; "writable": true; }, { "name": "collectProtocolFeesAuthority"; "signer": true; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tokenDestinationA"; "writable": true; }, { "name": "tokenDestinationB"; "writable": true; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; } ]; "args": [ { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "collectReward"; "docs": [ "Collect rewards accrued for this position.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position." ]; "discriminator": [ 70, 5, 132, 87, 86, 235, 177, 34 ]; "accounts": [ { "name": "whirlpool"; "relations": [ "position" ]; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "rewardOwnerAccount"; "writable": true; }, { "name": "rewardVault"; "writable": true; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; } ]; "args": [ { "name": "rewardIndex"; "type": "u8"; } ]; }, { "name": "collectRewardV2"; "docs": [ "Collect rewards accrued for this position.", "This instruction works with both Token and Token-2022.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position." ]; "discriminator": [ 177, 107, 37, 180, 160, 19, 49, 209 ]; "accounts": [ { "name": "whirlpool"; "relations": [ "position" ]; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "rewardOwnerAccount"; "writable": true; }, { "name": "rewardMint"; }, { "name": "rewardVault"; "writable": true; }, { "name": "rewardTokenProgram"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; } ]; "args": [ { "name": "rewardIndex"; "type": "u8"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "decreaseLiquidity"; "docs": [ "Withdraw liquidity from a position in the Whirlpool. This call also updates the position's accrued fees and rewards.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position.", "", "### Parameters", "- `liquidity_amount` - The total amount of Liquidity the user desires to withdraw.", "- `token_min_a` - The minimum amount of tokenA the user is willing to withdraw.", "- `token_min_b` - The minimum amount of tokenB the user is willing to withdraw.", "", "#### Special Errors", "- `LiquidityZero` - Provided liquidity amount is zero.", "- `LiquidityTooHigh` - Provided liquidity exceeds u128::max.", "- `TokenMinSubceeded` - The required token to perform this operation subceeds the user defined amount." ]; "discriminator": [ 160, 38, 208, 111, 104, 91, 44, 1 ]; "accounts": [ { "name": "whirlpool"; "writable": true; "relations": [ "position" ]; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMinA"; "type": "u64"; }, { "name": "tokenMinB"; "type": "u64"; } ]; }, { "name": "decreaseLiquidityV2"; "docs": [ "Withdraw liquidity from a position in the Whirlpool. This call also updates the position's accrued fees and rewards.", "This instruction works with both Token and Token-2022.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position.", "", "### Parameters", "- `liquidity_amount` - The total amount of Liquidity the user desires to withdraw.", "- `token_min_a` - The minimum amount of tokenA the user is willing to withdraw.", "- `token_min_b` - The minimum amount of tokenB the user is willing to withdraw.", "", "#### Special Errors", "- `LiquidityZero` - Provided liquidity amount is zero.", "- `LiquidityTooHigh` - Provided liquidity exceeds u128::max.", "- `TokenMinSubceeded` - The required token to perform this operation subceeds the user defined amount." ]; "discriminator": [ 58, 127, 188, 62, 79, 82, 196, 96 ]; "accounts": [ { "name": "whirlpool"; "writable": true; "relations": [ "position" ]; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMinA"; "type": "u64"; }, { "name": "tokenMinB"; "type": "u64"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "deletePositionBundle"; "docs": [ "Delete a PositionBundle account. Burns the position bundle token in the owner's wallet.", "", "### Authority", "- `position_bundle_owner` - The owner that owns the position bundle token.", "", "### Special Errors", "- `PositionBundleNotDeletable` - The provided position bundle has open positions." ]; "discriminator": [ 100, 25, 99, 2, 217, 239, 124, 173 ]; "accounts": [ { "name": "positionBundle"; "writable": true; }, { "name": "positionBundleMint"; "writable": true; }, { "name": "positionBundleTokenAccount"; "writable": true; }, { "name": "positionBundleOwner"; "signer": true; }, { "name": "receiver"; "writable": true; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; } ]; "args": []; }, { "name": "deleteTokenBadge"; "docs": [ "Delete a TokenBadge account.", "", "### Authority", "- \"token_badge_authority\" - Set authority in the WhirlpoolConfigExtension", "", "### Special Errors", "- `FeatureIsNotEnabled` - If the feature flag for token badges is not enabled." ]; "discriminator": [ 53, 146, 68, 8, 18, 117, 17, 185 ]; "accounts": [ { "name": "whirlpoolsConfig"; "relations": [ "whirlpoolsConfigExtension", "tokenBadge" ]; }, { "name": "whirlpoolsConfigExtension"; }, { "name": "tokenBadgeAuthority"; "signer": true; }, { "name": "tokenMint"; }, { "name": "tokenBadge"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 116, 111, 107, 101, 110, 95, 98, 97, 100, 103, 101 ]; }, { "kind": "account"; "path": "whirlpoolsConfig"; }, { "kind": "account"; "path": "tokenMint"; } ]; }; }, { "name": "receiver"; "writable": true; } ]; "args": []; }, { "name": "idlInclude"; "discriminator": [ 223, 253, 121, 121, 60, 193, 129, 31 ]; "accounts": [ { "name": "tickArray"; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; } ]; "args": []; }, { "name": "increaseLiquidity"; "docs": [ "Add liquidity to a position in the Whirlpool. This call also updates the position's accrued fees and rewards.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position.", "", "### Parameters", "- `liquidity_amount` - The total amount of Liquidity the user is willing to deposit.", "- `token_max_a` - The maximum amount of tokenA the user is willing to deposit.", "- `token_max_b` - The maximum amount of tokenB the user is willing to deposit.", "", "#### Special Errors", "- `LiquidityZero` - Provided liquidity amount is zero.", "- `LiquidityTooHigh` - Provided liquidity exceeds u128::max.", "- `TokenMaxExceeded` - The required token to perform this operation exceeds the user defined amount." ]; "discriminator": [ 46, 156, 243, 118, 13, 205, 251, 178 ]; "accounts": [ { "name": "whirlpool"; "writable": true; "relations": [ "position" ]; }, { "name": "tokenProgram"; "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMaxA"; "type": "u64"; }, { "name": "tokenMaxB"; "type": "u64"; } ]; }, { "name": "increaseLiquidityByTokenAmountsV2"; "docs": [ "Add liquidity to a position by specifying token maxima, not liquidity.", "This instruction works with both Token and Token-2022.", "", "NOTE: This instruction is only implemented in Pinocchio, not Anchor.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position.", "", "### Parameters", "- `token_max_a` - The maximum amount of tokenA the user is willing to deposit.", "- `token_max_b` - The maximum amount of tokenB the user is willing to deposit.", "- `min_sqrt_price` - The minimum sqrt price allowed.", "- `max_sqrt_price` - The maximum sqrt price allowed.", "", "", "#### Special Errors", "- `LiquidityZero` - Computed liquidity amount is zero.", "- `LiquidityTooHigh` - Computed liquidity exceeds u128::max.", "- `TokenMaxExceeded` - The required token to perform this operation exceeds the user defined amount." ]; "discriminator": [ 239, 251, 9, 124, 210, 198, 53, 43 ]; "accounts": [ { "name": "whirlpool"; "writable": true; "relations": [ "position" ]; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "method"; "type": { "defined": { "name": "increaseLiquidityMethod"; }; }; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "increaseLiquidityV2"; "docs": [ "Add liquidity to a position in the Whirlpool. This call also updates the position's accrued fees and rewards.", "This instruction works with both Token and Token-2022.", "", "### Authority", "- `position_authority` - authority that owns the token corresponding to this desired position.", "", "### Parameters", "- `liquidity_amount` - The total amount of Liquidity the user is willing to deposit.", "- `token_max_a` - The maximum amount of tokenA the user is willing to deposit.", "- `token_max_b` - The maximum amount of tokenB the user is willing to deposit.", "", "#### Special Errors", "- `LiquidityZero` - Provided liquidity amount is zero.", "- `LiquidityTooHigh` - Provided liquidity exceeds u128::max.", "- `TokenMaxExceeded` - The required token to perform this operation exceeds the user defined amount." ]; "discriminator": [ 133, 29, 89, 223, 69, 238, 176, 10 ]; "accounts": [ { "name": "whirlpool"; "writable": true; "relations": [ "position" ]; }, { "name": "tokenProgramA"; }, { "name": "tokenProgramB"; }, { "name": "memoProgram"; "address": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"; }, { "name": "positionAuthority"; "signer": true; }, { "name": "position"; "writable": true; }, { "name": "positionTokenAccount"; }, { "name": "tokenMintA"; }, { "name": "tokenMintB"; }, { "name": "tokenOwnerAccountA"; "writable": true; }, { "name": "tokenOwnerAccountB"; "writable": true; }, { "name": "tokenVaultA"; "writable": true; }, { "name": "tokenVaultB"; "writable": true; }, { "name": "tickArrayLower"; "writable": true; }, { "name": "tickArrayUpper"; "writable": true; } ]; "args": [ { "name": "liquidityAmount"; "type": "u128"; }, { "name": "tokenMaxA"; "type": "u64"; }, { "name": "tokenMaxB"; "type": "u64"; }, { "name": "remainingAccountsInfo"; "type": { "option": { "defined": { "name": "remainingAccountsInfo"; }; }; }; } ]; }, { "name": "initializeAdaptiveFeeTier"; "docs": [ "Initializes an adaptive_fee_tier account usable by Whirlpools in a WhirlpoolConfig space.", "", "### Authority", "- \"fee_authority\" - Set authority in the WhirlpoolConfig", "", "### Parameters", "- `fee_tier_index` - The index of the fee-tier that this adaptive fee tier will be initialized.", "- `tick_spacing` - The tick-spacing that this fee-tier suggests the default_fee_rate for.", "- `initialize_pool_authority` - The authority that can initialize pools with this adaptive fee-tier.", "- `delegated_fee_authority` - The authority that can set the base fee rate for pools using this adaptive fee-tier.", "- `default_fee_rate` - The default fee rate that a pool will use if the pool uses this", "fee tier during initialization.", "- `filter_period` - Period determine high frequency trading time window. (seconds)", "- `decay_period` - Period determine when the adaptive fee start decrease. (seconds)", "- `reduction_factor` - Adaptive fee rate decrement rate.", "- `adaptive_fee_control_factor` - Adaptive fee control factor.", "- `max_volatility_accumulator` - Max volatility accumulator.", "- `tick_group_size` - Tick group size to define tick group index.", "- `major_swap_threshold_ticks` - Major swap threshold ticks to define major swap.", "", "#### Special Errors", "- `InvalidTickSpacing` - If the provided tick_spacing is 0.", "- `InvalidFeeTierIndex` - If the provided fee_tier_index is same to tick_spacing.", "- `FeeRateMaxExceeded` - If the provided default_fee_rate exceeds MAX_FEE_RATE.", "- `InvalidAdaptiveFeeConstants` - If the provided adaptive fee constants are invalid." ]; "discriminator": [ 77, 99, 208, 200, 141, 123, 117, 48 ]; "accounts": [ { "name": "whirlpoolsConfig"; }, { "name": "adaptiveFeeTier"; "writable": true; "pda": { "seeds": [ { "kind": "const"; "value": [ 102, 101, 101, 95, 116, 105, 101, 114 ]; }, { "kind": "account"; "path": "whirlpoolsConfig"; }, { "kind": "arg"; "path": "feeTierIndex"; } ]; }; }, { "name": "funder"; "writable": true; "signer": true; }, { "name": "feeAuthority"; "signer": true; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; } ]; "args": [ { "name": "feeTierIndex"; "type": "u16"; }, { "name": "tickSpacing"; "type": "u16"; }, { "name": "initializePoolAuthority"; "type": "pubkey"; }, { "name": "delegatedFeeAuthority"; "type": "pubkey"; }, { "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": "initializeConfig"; "docs": [ "Initializes a WhirlpoolsConfig account that hosts info & authorities", "required to govern a set of Whirlpools.", "", "### Authority", "- \"authority\" - Set authority that is one of ADMINS.", "", "### Parameters", "- `fee_authority` - Authority authorized to initialize fee-tiers and set customs fees.", "- `collect_protocol_fees_authority` - Authority authorized to collect protocol fees.", "- `reward_emissions_super_authority` - Authority authorized to set reward authorities in pools." ]; "discriminator": [ 208, 127, 21, 1, 194, 190, 196, 70 ]; "accounts": [ { "name": "config"; "writable": true; "signer": true; }, { "name": "funder"; "writable": true; "signer": true; }, { "name": "systemProgram"; "address": "11111111111111111111111111111111"; } ]; "args": [ { "name": "feeAuthority"; "type": "pubkey"; }, { "name": "collectProtocolFeesAuthority"; "type": "pub