@orca-so/whirlpools-sdk
Version:
Typescript SDK to interact with Orca's Whirlpool program.
1,502 lines • 258 kB
TypeScript
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