From 528465c09859ec2d6c416c01c47296f8f851da29 Mon Sep 17 00:00:00 2001 From: Hunter Date: Wed, 16 Jul 2025 11:40:46 +0800 Subject: [PATCH] update Orca IDL --- orca/whirlpool_v2.json | 1238 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 1133 insertions(+), 105 deletions(-) diff --git a/orca/whirlpool_v2.json b/orca/whirlpool_v2.json index e98f48d..679d119 100644 --- a/orca/whirlpool_v2.json +++ b/orca/whirlpool_v2.json @@ -1,5 +1,5 @@ { - "version": "0.3.0", + "version": "0.3.6", "name": "whirlpool", "instructions": [ { @@ -1462,6 +1462,591 @@ } ] }, + { + "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": [ @@ -2492,7 +3077,7 @@ ], "accounts": [ { - "name": "WhirlpoolsConfigExtension", + "name": "AdaptiveFeeTier", "type": { "kind": "struct", "fields": [ @@ -2501,12 +3086,52 @@ "type": "publicKey" }, { - "name": "configExtensionAuthority", + "name": "feeTierIndex", + "type": "u16" + }, + { + "name": "tickSpacing", + "type": "u16" + }, + { + "name": "initializePoolAuthority", "type": "publicKey" }, { - "name": "tokenBadgeAuthority", + "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" } ] } @@ -2535,6 +3160,26 @@ ] } }, + { + "name": "WhirlpoolsConfigExtension", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolsConfig", + "type": "publicKey" + }, + { + "name": "configExtensionAuthority", + "type": "publicKey" + }, + { + "name": "tokenBadgeAuthority", + "type": "publicKey" + } + ] + } + }, { "name": "FeeTier", "type": { @@ -2556,20 +3201,66 @@ } }, { - "name": "PositionBundle", + "name": "LockConfig", "type": { "kind": "struct", "fields": [ { - "name": "positionBundleMint", + "name": "position", "type": "publicKey" }, { - "name": "positionBitmap", + "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", - 32 + 128 ] } } @@ -2631,6 +3322,27 @@ ] } }, + { + "name": "PositionBundle", + "type": { + "kind": "struct", + "fields": [ + { + "name": "positionBundleMint", + "type": "publicKey" + }, + { + "name": "positionBitmap", + "type": { + "array": [ + "u8", + 32 + ] + } + } + ] + } + }, { "name": "TickArray", "type": { @@ -2697,7 +3409,7 @@ "type": "u16" }, { - "name": "tickSpacingSeed", + "name": "feeTierIndexSeed", "type": { "array": [ "u8", @@ -2758,25 +3470,129 @@ "type": "u128" }, { - "name": "rewardLastUpdatedTimestamp", - "type": "u64" + "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": "rewardInfos", + "name": "reserved", "type": { "array": [ - { - "defined": "WhirlpoolRewardInfo" - }, - 3 + "u8", + 16 ] } } ] } - } - ], - "types": [ + }, { "name": "OpenPositionBumps", "type": { @@ -2858,6 +3674,18 @@ ] } }, + { + "name": "WhirlpoolBumps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpoolBump", + "type": "u8" + } + ] + } + }, { "name": "WhirlpoolRewardInfo", "type": { @@ -2887,31 +3715,36 @@ } }, { - "name": "WhirlpoolBumps", + "name": "AccountsType", "type": { - "kind": "struct", - "fields": [ + "kind": "enum", + "variants": [ { - "name": "whirlpoolBump", - "type": "u8" - } - ] - } - }, - { - "name": "RemainingAccountsSlice", - "type": { - "kind": "struct", - "fields": [ + "name": "TransferHookA" + }, { - "name": "accountsType", - "type": { - "defined": "AccountsType" - } + "name": "TransferHookB" }, { - "name": "length", - "type": "u8" + "name": "TransferHookReward" + }, + { + "name": "TransferHookInput" + }, + { + "name": "TransferHookIntermediate" + }, + { + "name": "TransferHookOutput" + }, + { + "name": "SupplementalTickArrays" + }, + { + "name": "SupplementalTickArraysOne" + }, + { + "name": "SupplementalTickArraysTwo" } ] } @@ -2933,84 +3766,234 @@ } }, { - "name": "CurrIndex", + "name": "RemainingAccountsSlice", "type": { - "kind": "enum", - "variants": [ - { - "name": "Below" - }, + "kind": "struct", + "fields": [ { - "name": "Inside" + "name": "accountsType", + "type": { + "defined": "AccountsType" + } }, { - "name": "Above" + "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": "TickLabel", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Upper" - }, - { - "name": "Lower" - } - ] - } + "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": "Direction", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Left" - }, - { - "name": "Right" - } - ] - } + "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": "AccountsType", - "type": { - "kind": "enum", - "variants": [ - { - "name": "TransferHookA" - }, - { - "name": "TransferHookB" - }, - { - "name": "TransferHookReward" - }, - { - "name": "TransferHookInput" - }, - { - "name": "TransferHookIntermediate" - }, - { - "name": "TransferHookOutput" - }, - { - "name": "SupplementalTickArrays" - }, - { - "name": "SupplementalTickArraysOne" - }, - { - "name": "SupplementalTickArraysTwo" - } - ] - } + "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": [ @@ -3286,13 +4269,58 @@ }, { "code": 6054, + "name": "FullRangeOnlyPool", + "msg": "This whirlpool only supports full-range positions" + }, + { + "code": 6055, "name": "TooManySupplementalTickArrays", "msg": "Too many supplemental tick arrays provided" }, { - "code": 6055, + "code": 6056, "name": "DifferentWhirlpoolTickArrayAccount", "msg": "TickArray account for different whirlpool provided" + }, + { + "code": 6057, + "name": "PartialFillError", + "msg": "Trade resulted in partial fill" + }, + { + "code": 6058, + "name": "PositionNotLockable", + "msg": "Position is not lockable" + }, + { + "code": 6059, + "name": "OperationNotAllowedOnLockedPosition", + "msg": "Operation not allowed on locked position" + }, + { + "code": 6060, + "name": "SameTickRangeNotAllowed", + "msg": "Cannot reset position range with same tick range" + }, + { + "code": 6061, + "name": "InvalidAdaptiveFeeConstants", + "msg": "Invalid adaptive fee constants" + }, + { + "code": 6062, + "name": "InvalidFeeTierIndex", + "msg": "Invalid fee tier index" + }, + { + "code": 6063, + "name": "InvalidTradeEnableTimestamp", + "msg": "Invalid trade enable timestamp" + }, + { + "code": 6064, + "name": "TradeIsNotEnabled", + "msg": "Trade is not enabled yet" } ] } \ No newline at end of file