{
"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"
}
]
}