@orca-so/whirlpools-client
Version:
Typescript client to interact with Orca's on-chain Whirlpool program.
1 lines • 1.32 MB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts","../src/generated/accounts/adaptiveFeeTier.ts","../src/generated/accounts/dynamicTickArray.ts","../src/generated/types/accountsType.ts","../src/generated/types/adaptiveFeeConstants.ts","../src/generated/types/adaptiveFeeVariables.ts","../src/generated/types/configFeatureFlag.ts","../src/generated/types/dynamicTick.ts","../src/generated/types/dynamicTickData.ts","../src/generated/types/increaseLiquidityMethod.ts","../src/generated/types/liquidityDecreased.ts","../src/generated/types/liquidityIncreased.ts","../src/generated/types/liquidityRepositioned.ts","../src/generated/types/lockType.ts","../src/generated/types/lockTypeLabel.ts","../src/generated/types/poolInitialized.ts","../src/generated/types/positionOpened.ts","../src/generated/types/positionRewardInfo.ts","../src/generated/types/remainingAccountsInfo.ts","../src/generated/types/remainingAccountsSlice.ts","../src/generated/types/repositionLiquidityMethod.ts","../src/generated/types/tick.ts","../src/generated/types/tokenBadgeAttribute.ts","../src/generated/types/traded.ts","../src/generated/types/whirlpoolRewardInfo.ts","../src/generated/accounts/feeTier.ts","../src/generated/accounts/fixedTickArray.ts","../src/generated/accounts/lockConfig.ts","../src/generated/accounts/oracle.ts","../src/generated/accounts/position.ts","../src/generated/accounts/positionBundle.ts","../src/generated/accounts/tokenBadge.ts","../src/generated/accounts/whirlpool.ts","../src/generated/accounts/whirlpoolsConfig.ts","../src/generated/accounts/whirlpoolsConfigExtension.ts","../src/generated/errors/whirlpool.ts","../src/generated/programs/whirlpool.ts","../src/generated/instructions/closeBundledPosition.ts","../src/generated/shared/index.ts","../src/generated/instructions/closePosition.ts","../src/generated/instructions/closePositionWithTokenExtensions.ts","../src/generated/instructions/collectFees.ts","../src/generated/instructions/collectFeesV2.ts","../src/generated/instructions/collectProtocolFees.ts","../src/generated/instructions/collectProtocolFeesV2.ts","../src/generated/instructions/collectReward.ts","../src/generated/instructions/collectRewardV2.ts","../src/generated/instructions/decreaseLiquidity.ts","../src/generated/instructions/decreaseLiquidityV2.ts","../src/generated/instructions/deletePositionBundle.ts","../src/generated/instructions/deleteTokenBadge.ts","../src/generated/instructions/idlInclude.ts","../src/generated/instructions/increaseLiquidity.ts","../src/generated/instructions/increaseLiquidityByTokenAmountsV2.ts","../src/generated/instructions/increaseLiquidityV2.ts","../src/generated/instructions/initializeAdaptiveFeeTier.ts","../src/generated/instructions/initializeConfig.ts","../src/generated/instructions/initializeConfigExtension.ts","../src/generated/instructions/initializeDynamicTickArray.ts","../src/generated/instructions/initializeFeeTier.ts","../src/generated/instructions/initializePool.ts","../src/generated/instructions/initializePoolV2.ts","../src/generated/instructions/initializePoolWithAdaptiveFee.ts","../src/generated/instructions/initializePositionBundle.ts","../src/generated/instructions/initializePositionBundleWithMetadata.ts","../src/generated/instructions/initializeReward.ts","../src/generated/instructions/initializeRewardV2.ts","../src/generated/instructions/initializeTickArray.ts","../src/generated/instructions/initializeTokenBadge.ts","../src/generated/instructions/lockPosition.ts","../src/generated/instructions/migrateRepurposeRewardAuthoritySpace.ts","../src/generated/instructions/openBundledPosition.ts","../src/generated/instructions/openPosition.ts","../src/generated/instructions/openPositionWithMetadata.ts","../src/generated/instructions/openPositionWithTokenExtensions.ts","../src/generated/instructions/repositionLiquidityV2.ts","../src/generated/instructions/resetPositionRange.ts","../src/generated/instructions/setAdaptiveFeeConstants.ts","../src/generated/instructions/setCollectProtocolFeesAuthority.ts","../src/generated/instructions/setConfigExtensionAuthority.ts","../src/generated/instructions/setConfigFeatureFlag.ts","../src/generated/instructions/setDefaultBaseFeeRate.ts","../src/generated/instructions/setDefaultFeeRate.ts","../src/generated/instructions/setDefaultProtocolFeeRate.ts","../src/generated/instructions/setDelegatedFeeAuthority.ts","../src/generated/instructions/setFeeAuthority.ts","../src/generated/instructions/setFeeRate.ts","../src/generated/instructions/setFeeRateByDelegatedFeeAuthority.ts","../src/generated/instructions/setInitializePoolAuthority.ts","../src/generated/instructions/setPresetAdaptiveFeeConstants.ts","../src/generated/instructions/setProtocolFeeRate.ts","../src/generated/instructions/setRewardAuthority.ts","../src/generated/instructions/setRewardAuthorityBySuperAuthority.ts","../src/generated/instructions/setRewardEmissions.ts","../src/generated/instructions/setRewardEmissionsSuperAuthority.ts","../src/generated/instructions/setRewardEmissionsV2.ts","../src/generated/instructions/setTokenBadgeAttribute.ts","../src/generated/instructions/setTokenBadgeAuthority.ts","../src/generated/instructions/swap.ts","../src/generated/instructions/swapV2.ts","../src/generated/instructions/transferLockedPosition.ts","../src/generated/instructions/twoHopSwap.ts","../src/generated/instructions/twoHopSwapV2.ts","../src/generated/instructions/updateFeesAndRewards.ts","../src/gpa/adaptiveFeeTier.ts","../src/gpa/utils.ts","../src/gpa/dynamicTickArray.ts","../src/gpa/feeTier.ts","../src/gpa/fixedTickArray.ts","../src/gpa/lockConfig.ts","../src/gpa/oracle.ts","../src/gpa/position.ts","../src/gpa/positionBundle.ts","../src/state/tickArray.ts","../src/gpa/tickArray.ts","../src/gpa/tokenBadge.ts","../src/gpa/whirlpool.ts","../src/gpa/whirlpoolsConfig.ts","../src/gpa/whirlpoolsConfigExtension.ts","../src/pda/feeTier.ts","../src/pda/lockConfig.ts","../src/pda/oracle.ts","../src/pda/position.ts","../src/pda/positionBundle.ts","../src/pda/tickArray.ts","../src/pda/tokenBadge.ts","../src/pda/whirlpool.ts","../src/pda/whirlpoolsConfigExtension.ts","../src/state/dynamicTickArray.ts"],"sourcesContent":["export * from \"./generated\";\nexport * from \"./gpa\";\nexport * from \"./pda\";\nexport * from \"./state\";\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU16Decoder,\n getU16Encoder,\n getU32Decoder,\n getU32Encoder,\n transformEncoder,\n type Account,\n type Address,\n type EncodedAccount,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport const ADAPTIVE_FEE_TIER_DISCRIMINATOR = new Uint8Array([\n 147, 16, 144, 116, 47, 146, 149, 46,\n]);\n\nexport function getAdaptiveFeeTierDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n ADAPTIVE_FEE_TIER_DISCRIMINATOR\n );\n}\n\nexport type AdaptiveFeeTier = {\n discriminator: ReadonlyUint8Array;\n whirlpoolsConfig: Address;\n feeTierIndex: number;\n tickSpacing: number;\n initializePoolAuthority: Address;\n delegatedFeeAuthority: Address;\n defaultBaseFeeRate: number;\n filterPeriod: number;\n decayPeriod: number;\n reductionFactor: number;\n adaptiveFeeControlFactor: number;\n maxVolatilityAccumulator: number;\n tickGroupSize: number;\n majorSwapThresholdTicks: number;\n};\n\nexport type AdaptiveFeeTierArgs = {\n whirlpoolsConfig: Address;\n feeTierIndex: number;\n tickSpacing: number;\n initializePoolAuthority: Address;\n delegatedFeeAuthority: Address;\n defaultBaseFeeRate: number;\n filterPeriod: number;\n decayPeriod: number;\n reductionFactor: number;\n adaptiveFeeControlFactor: number;\n maxVolatilityAccumulator: number;\n tickGroupSize: number;\n majorSwapThresholdTicks: number;\n};\n\nexport function getAdaptiveFeeTierEncoder(): FixedSizeEncoder<AdaptiveFeeTierArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['whirlpoolsConfig', getAddressEncoder()],\n ['feeTierIndex', getU16Encoder()],\n ['tickSpacing', getU16Encoder()],\n ['initializePoolAuthority', getAddressEncoder()],\n ['delegatedFeeAuthority', getAddressEncoder()],\n ['defaultBaseFeeRate', getU16Encoder()],\n ['filterPeriod', getU16Encoder()],\n ['decayPeriod', getU16Encoder()],\n ['reductionFactor', getU16Encoder()],\n ['adaptiveFeeControlFactor', getU32Encoder()],\n ['maxVolatilityAccumulator', getU32Encoder()],\n ['tickGroupSize', getU16Encoder()],\n ['majorSwapThresholdTicks', getU16Encoder()],\n ]),\n (value) => ({ ...value, discriminator: ADAPTIVE_FEE_TIER_DISCRIMINATOR })\n );\n}\n\nexport function getAdaptiveFeeTierDecoder(): FixedSizeDecoder<AdaptiveFeeTier> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['whirlpoolsConfig', getAddressDecoder()],\n ['feeTierIndex', getU16Decoder()],\n ['tickSpacing', getU16Decoder()],\n ['initializePoolAuthority', getAddressDecoder()],\n ['delegatedFeeAuthority', getAddressDecoder()],\n ['defaultBaseFeeRate', getU16Decoder()],\n ['filterPeriod', getU16Decoder()],\n ['decayPeriod', getU16Decoder()],\n ['reductionFactor', getU16Decoder()],\n ['adaptiveFeeControlFactor', getU32Decoder()],\n ['maxVolatilityAccumulator', getU32Decoder()],\n ['tickGroupSize', getU16Decoder()],\n ['majorSwapThresholdTicks', getU16Decoder()],\n ]);\n}\n\nexport function getAdaptiveFeeTierCodec(): FixedSizeCodec<\n AdaptiveFeeTierArgs,\n AdaptiveFeeTier\n> {\n return combineCodec(getAdaptiveFeeTierEncoder(), getAdaptiveFeeTierDecoder());\n}\n\nexport function decodeAdaptiveFeeTier<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<AdaptiveFeeTier, TAddress>;\nexport function decodeAdaptiveFeeTier<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<AdaptiveFeeTier, TAddress>;\nexport function decodeAdaptiveFeeTier<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n):\n | Account<AdaptiveFeeTier, TAddress>\n | MaybeAccount<AdaptiveFeeTier, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getAdaptiveFeeTierDecoder()\n );\n}\n\nexport async function fetchAdaptiveFeeTier<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<AdaptiveFeeTier, TAddress>> {\n const maybeAccount = await fetchMaybeAdaptiveFeeTier(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeAdaptiveFeeTier<\n TAddress extends string = string,\n>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<AdaptiveFeeTier, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeAdaptiveFeeTier(maybeAccount);\n}\n\nexport async function fetchAllAdaptiveFeeTier(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<AdaptiveFeeTier>[]> {\n const maybeAccounts = await fetchAllMaybeAdaptiveFeeTier(\n rpc,\n addresses,\n config\n );\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeAdaptiveFeeTier(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<AdaptiveFeeTier>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) =>\n decodeAdaptiveFeeTier(maybeAccount)\n );\n}\n\nexport function getAdaptiveFeeTierSize(): number {\n return 128;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n assertAccountExists,\n assertAccountsExist,\n combineCodec,\n decodeAccount,\n fetchEncodedAccount,\n fetchEncodedAccounts,\n fixDecoderSize,\n fixEncoderSize,\n getAddressDecoder,\n getAddressEncoder,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n transformEncoder,\n type Account,\n type Address,\n type Codec,\n type Decoder,\n type EncodedAccount,\n type Encoder,\n type FetchAccountConfig,\n type FetchAccountsConfig,\n type MaybeAccount,\n type MaybeEncodedAccount,\n type ReadonlyUint8Array,\n} from '@solana/kit';\nimport {\n getDynamicTickDecoder,\n getDynamicTickEncoder,\n type DynamicTick,\n type DynamicTickArgs,\n} from '../types';\n\nexport const DYNAMIC_TICK_ARRAY_DISCRIMINATOR = new Uint8Array([\n 17, 216, 246, 142, 225, 199, 218, 56,\n]);\n\nexport function getDynamicTickArrayDiscriminatorBytes() {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n DYNAMIC_TICK_ARRAY_DISCRIMINATOR\n );\n}\n\nexport type DynamicTickArray = {\n discriminator: ReadonlyUint8Array;\n startTickIndex: number;\n whirlpool: Address;\n tickBitmap: bigint;\n ticks: Array<DynamicTick>;\n};\n\nexport type DynamicTickArrayArgs = {\n startTickIndex: number;\n whirlpool: Address;\n tickBitmap: number | bigint;\n ticks: Array<DynamicTickArgs>;\n};\n\nexport function getDynamicTickArrayEncoder(): Encoder<DynamicTickArrayArgs> {\n return transformEncoder(\n getStructEncoder([\n ['discriminator', fixEncoderSize(getBytesEncoder(), 8)],\n ['startTickIndex', getI32Encoder()],\n ['whirlpool', getAddressEncoder()],\n ['tickBitmap', getU128Encoder()],\n ['ticks', getArrayEncoder(getDynamicTickEncoder(), { size: 88 })],\n ]),\n (value) => ({ ...value, discriminator: DYNAMIC_TICK_ARRAY_DISCRIMINATOR })\n );\n}\n\nexport function getDynamicTickArrayDecoder(): Decoder<DynamicTickArray> {\n return getStructDecoder([\n ['discriminator', fixDecoderSize(getBytesDecoder(), 8)],\n ['startTickIndex', getI32Decoder()],\n ['whirlpool', getAddressDecoder()],\n ['tickBitmap', getU128Decoder()],\n ['ticks', getArrayDecoder(getDynamicTickDecoder(), { size: 88 })],\n ]);\n}\n\nexport function getDynamicTickArrayCodec(): Codec<\n DynamicTickArrayArgs,\n DynamicTickArray\n> {\n return combineCodec(\n getDynamicTickArrayEncoder(),\n getDynamicTickArrayDecoder()\n );\n}\n\nexport function decodeDynamicTickArray<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress>\n): Account<DynamicTickArray, TAddress>;\nexport function decodeDynamicTickArray<TAddress extends string = string>(\n encodedAccount: MaybeEncodedAccount<TAddress>\n): MaybeAccount<DynamicTickArray, TAddress>;\nexport function decodeDynamicTickArray<TAddress extends string = string>(\n encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>\n):\n | Account<DynamicTickArray, TAddress>\n | MaybeAccount<DynamicTickArray, TAddress> {\n return decodeAccount(\n encodedAccount as MaybeEncodedAccount<TAddress>,\n getDynamicTickArrayDecoder()\n );\n}\n\nexport async function fetchDynamicTickArray<TAddress extends string = string>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<Account<DynamicTickArray, TAddress>> {\n const maybeAccount = await fetchMaybeDynamicTickArray(rpc, address, config);\n assertAccountExists(maybeAccount);\n return maybeAccount;\n}\n\nexport async function fetchMaybeDynamicTickArray<\n TAddress extends string = string,\n>(\n rpc: Parameters<typeof fetchEncodedAccount>[0],\n address: Address<TAddress>,\n config?: FetchAccountConfig\n): Promise<MaybeAccount<DynamicTickArray, TAddress>> {\n const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n return decodeDynamicTickArray(maybeAccount);\n}\n\nexport async function fetchAllDynamicTickArray(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<Account<DynamicTickArray>[]> {\n const maybeAccounts = await fetchAllMaybeDynamicTickArray(\n rpc,\n addresses,\n config\n );\n assertAccountsExist(maybeAccounts);\n return maybeAccounts;\n}\n\nexport async function fetchAllMaybeDynamicTickArray(\n rpc: Parameters<typeof fetchEncodedAccounts>[0],\n addresses: Array<Address>,\n config?: FetchAccountsConfig\n): Promise<MaybeAccount<DynamicTickArray>[]> {\n const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n return maybeAccounts.map((maybeAccount) =>\n decodeDynamicTickArray(maybeAccount)\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum AccountsType {\n TransferHookA,\n TransferHookB,\n TransferHookReward,\n TransferHookInput,\n TransferHookIntermediate,\n TransferHookOutput,\n SupplementalTickArrays,\n SupplementalTickArraysOne,\n SupplementalTickArraysTwo,\n TransferHookDepositA,\n TransferHookDepositB,\n TransferHookWithdrawalA,\n TransferHookWithdrawalB,\n}\n\nexport type AccountsTypeArgs = AccountsType;\n\nexport function getAccountsTypeEncoder(): FixedSizeEncoder<AccountsTypeArgs> {\n return getEnumEncoder(AccountsType);\n}\n\nexport function getAccountsTypeDecoder(): FixedSizeDecoder<AccountsType> {\n return getEnumDecoder(AccountsType);\n}\n\nexport function getAccountsTypeCodec(): FixedSizeCodec<\n AccountsTypeArgs,\n AccountsType\n> {\n return combineCodec(getAccountsTypeEncoder(), getAccountsTypeDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU16Decoder,\n getU16Encoder,\n getU32Decoder,\n getU32Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type AdaptiveFeeConstants = {\n filterPeriod: number;\n decayPeriod: number;\n reductionFactor: number;\n adaptiveFeeControlFactor: number;\n maxVolatilityAccumulator: number;\n tickGroupSize: number;\n majorSwapThresholdTicks: number;\n reserved: ReadonlyUint8Array;\n};\n\nexport type AdaptiveFeeConstantsArgs = AdaptiveFeeConstants;\n\nexport function getAdaptiveFeeConstantsEncoder(): FixedSizeEncoder<AdaptiveFeeConstantsArgs> {\n return getStructEncoder([\n ['filterPeriod', getU16Encoder()],\n ['decayPeriod', getU16Encoder()],\n ['reductionFactor', getU16Encoder()],\n ['adaptiveFeeControlFactor', getU32Encoder()],\n ['maxVolatilityAccumulator', getU32Encoder()],\n ['tickGroupSize', getU16Encoder()],\n ['majorSwapThresholdTicks', getU16Encoder()],\n ['reserved', fixEncoderSize(getBytesEncoder(), 16)],\n ]);\n}\n\nexport function getAdaptiveFeeConstantsDecoder(): FixedSizeDecoder<AdaptiveFeeConstants> {\n return getStructDecoder([\n ['filterPeriod', getU16Decoder()],\n ['decayPeriod', getU16Decoder()],\n ['reductionFactor', getU16Decoder()],\n ['adaptiveFeeControlFactor', getU32Decoder()],\n ['maxVolatilityAccumulator', getU32Decoder()],\n ['tickGroupSize', getU16Decoder()],\n ['majorSwapThresholdTicks', getU16Decoder()],\n ['reserved', fixDecoderSize(getBytesDecoder(), 16)],\n ]);\n}\n\nexport function getAdaptiveFeeConstantsCodec(): FixedSizeCodec<\n AdaptiveFeeConstantsArgs,\n AdaptiveFeeConstants\n> {\n return combineCodec(\n getAdaptiveFeeConstantsEncoder(),\n getAdaptiveFeeConstantsDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getBytesDecoder,\n getBytesEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type AdaptiveFeeVariables = {\n lastReferenceUpdateTimestamp: bigint;\n lastMajorSwapTimestamp: bigint;\n volatilityReference: number;\n tickGroupIndexReference: number;\n volatilityAccumulator: number;\n reserved: ReadonlyUint8Array;\n};\n\nexport type AdaptiveFeeVariablesArgs = {\n lastReferenceUpdateTimestamp: number | bigint;\n lastMajorSwapTimestamp: number | bigint;\n volatilityReference: number;\n tickGroupIndexReference: number;\n volatilityAccumulator: number;\n reserved: ReadonlyUint8Array;\n};\n\nexport function getAdaptiveFeeVariablesEncoder(): FixedSizeEncoder<AdaptiveFeeVariablesArgs> {\n return getStructEncoder([\n ['lastReferenceUpdateTimestamp', getU64Encoder()],\n ['lastMajorSwapTimestamp', getU64Encoder()],\n ['volatilityReference', getU32Encoder()],\n ['tickGroupIndexReference', getI32Encoder()],\n ['volatilityAccumulator', getU32Encoder()],\n ['reserved', fixEncoderSize(getBytesEncoder(), 16)],\n ]);\n}\n\nexport function getAdaptiveFeeVariablesDecoder(): FixedSizeDecoder<AdaptiveFeeVariables> {\n return getStructDecoder([\n ['lastReferenceUpdateTimestamp', getU64Decoder()],\n ['lastMajorSwapTimestamp', getU64Decoder()],\n ['volatilityReference', getU32Decoder()],\n ['tickGroupIndexReference', getI32Decoder()],\n ['volatilityAccumulator', getU32Decoder()],\n ['reserved', fixDecoderSize(getBytesDecoder(), 16)],\n ]);\n}\n\nexport function getAdaptiveFeeVariablesCodec(): FixedSizeCodec<\n AdaptiveFeeVariablesArgs,\n AdaptiveFeeVariables\n> {\n return combineCodec(\n getAdaptiveFeeVariablesEncoder(),\n getAdaptiveFeeVariablesDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getBooleanDecoder,\n getBooleanEncoder,\n getDiscriminatedUnionDecoder,\n getDiscriminatedUnionEncoder,\n getStructDecoder,\n getStructEncoder,\n getTupleDecoder,\n getTupleEncoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type GetDiscriminatedUnionVariant,\n type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\n\nexport type ConfigFeatureFlag = {\n __kind: 'TokenBadge';\n fields: readonly [boolean];\n};\n\nexport type ConfigFeatureFlagArgs = ConfigFeatureFlag;\n\nexport function getConfigFeatureFlagEncoder(): FixedSizeEncoder<ConfigFeatureFlagArgs> {\n return getDiscriminatedUnionEncoder([\n [\n 'TokenBadge',\n getStructEncoder([['fields', getTupleEncoder([getBooleanEncoder()])]]),\n ],\n ]) as FixedSizeEncoder<ConfigFeatureFlagArgs>;\n}\n\nexport function getConfigFeatureFlagDecoder(): FixedSizeDecoder<ConfigFeatureFlag> {\n return getDiscriminatedUnionDecoder([\n [\n 'TokenBadge',\n getStructDecoder([['fields', getTupleDecoder([getBooleanDecoder()])]]),\n ],\n ]) as FixedSizeDecoder<ConfigFeatureFlag>;\n}\n\nexport function getConfigFeatureFlagCodec(): FixedSizeCodec<\n ConfigFeatureFlagArgs,\n ConfigFeatureFlag\n> {\n return combineCodec(\n getConfigFeatureFlagEncoder(),\n getConfigFeatureFlagDecoder()\n );\n}\n\n// Data Enum Helpers.\nexport function configFeatureFlag(\n kind: 'TokenBadge',\n data: GetDiscriminatedUnionVariantContent<\n ConfigFeatureFlagArgs,\n '__kind',\n 'TokenBadge'\n >['fields']\n): GetDiscriminatedUnionVariant<ConfigFeatureFlagArgs, '__kind', 'TokenBadge'>;\nexport function configFeatureFlag<\n K extends ConfigFeatureFlagArgs['__kind'],\n Data,\n>(kind: K, data?: Data) {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isConfigFeatureFlag<K extends ConfigFeatureFlag['__kind']>(\n kind: K,\n value: ConfigFeatureFlag\n): value is ConfigFeatureFlag & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getDiscriminatedUnionDecoder,\n getDiscriminatedUnionEncoder,\n getStructDecoder,\n getStructEncoder,\n getTupleDecoder,\n getTupleEncoder,\n getUnitDecoder,\n getUnitEncoder,\n type Codec,\n type Decoder,\n type Encoder,\n type GetDiscriminatedUnionVariant,\n type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport {\n getDynamicTickDataDecoder,\n getDynamicTickDataEncoder,\n type DynamicTickData,\n type DynamicTickDataArgs,\n} from '.';\n\nexport type DynamicTick =\n | { __kind: 'Uninitialized' }\n | { __kind: 'Initialized'; fields: readonly [DynamicTickData] };\n\nexport type DynamicTickArgs =\n | { __kind: 'Uninitialized' }\n | { __kind: 'Initialized'; fields: readonly [DynamicTickDataArgs] };\n\nexport function getDynamicTickEncoder(): Encoder<DynamicTickArgs> {\n return getDiscriminatedUnionEncoder([\n ['Uninitialized', getUnitEncoder()],\n [\n 'Initialized',\n getStructEncoder([\n ['fields', getTupleEncoder([getDynamicTickDataEncoder()])],\n ]),\n ],\n ]);\n}\n\nexport function getDynamicTickDecoder(): Decoder<DynamicTick> {\n return getDiscriminatedUnionDecoder([\n ['Uninitialized', getUnitDecoder()],\n [\n 'Initialized',\n getStructDecoder([\n ['fields', getTupleDecoder([getDynamicTickDataDecoder()])],\n ]),\n ],\n ]);\n}\n\nexport function getDynamicTickCodec(): Codec<DynamicTickArgs, DynamicTick> {\n return combineCodec(getDynamicTickEncoder(), getDynamicTickDecoder());\n}\n\n// Data Enum Helpers.\nexport function dynamicTick(\n kind: 'Uninitialized'\n): GetDiscriminatedUnionVariant<DynamicTickArgs, '__kind', 'Uninitialized'>;\nexport function dynamicTick(\n kind: 'Initialized',\n data: GetDiscriminatedUnionVariantContent<\n DynamicTickArgs,\n '__kind',\n 'Initialized'\n >['fields']\n): GetDiscriminatedUnionVariant<DynamicTickArgs, '__kind', 'Initialized'>;\nexport function dynamicTick<K extends DynamicTickArgs['__kind'], Data>(\n kind: K,\n data?: Data\n) {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isDynamicTick<K extends DynamicTick['__kind']>(\n kind: K,\n value: DynamicTick\n): value is DynamicTick & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getArrayDecoder,\n getArrayEncoder,\n getI128Decoder,\n getI128Encoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type DynamicTickData = {\n liquidityNet: bigint;\n liquidityGross: bigint;\n feeGrowthOutsideA: bigint;\n feeGrowthOutsideB: bigint;\n rewardGrowthsOutside: Array<bigint>;\n};\n\nexport type DynamicTickDataArgs = {\n liquidityNet: number | bigint;\n liquidityGross: number | bigint;\n feeGrowthOutsideA: number | bigint;\n feeGrowthOutsideB: number | bigint;\n rewardGrowthsOutside: Array<number | bigint>;\n};\n\nexport function getDynamicTickDataEncoder(): FixedSizeEncoder<DynamicTickDataArgs> {\n return getStructEncoder([\n ['liquidityNet', getI128Encoder()],\n ['liquidityGross', getU128Encoder()],\n ['feeGrowthOutsideA', getU128Encoder()],\n ['feeGrowthOutsideB', getU128Encoder()],\n ['rewardGrowthsOutside', getArrayEncoder(getU128Encoder(), { size: 3 })],\n ]);\n}\n\nexport function getDynamicTickDataDecoder(): FixedSizeDecoder<DynamicTickData> {\n return getStructDecoder([\n ['liquidityNet', getI128Decoder()],\n ['liquidityGross', getU128Decoder()],\n ['feeGrowthOutsideA', getU128Decoder()],\n ['feeGrowthOutsideB', getU128Decoder()],\n ['rewardGrowthsOutside', getArrayDecoder(getU128Decoder(), { size: 3 })],\n ]);\n}\n\nexport function getDynamicTickDataCodec(): FixedSizeCodec<\n DynamicTickDataArgs,\n DynamicTickData\n> {\n return combineCodec(getDynamicTickDataEncoder(), getDynamicTickDataDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getDiscriminatedUnionDecoder,\n getDiscriminatedUnionEncoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU64Decoder,\n getU64Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type GetDiscriminatedUnionVariant,\n type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\n\nexport type IncreaseLiquidityMethod = {\n __kind: 'ByTokenAmounts';\n tokenMaxA: bigint;\n tokenMaxB: bigint;\n minSqrtPrice: bigint;\n maxSqrtPrice: bigint;\n};\n\nexport type IncreaseLiquidityMethodArgs = {\n __kind: 'ByTokenAmounts';\n tokenMaxA: number | bigint;\n tokenMaxB: number | bigint;\n minSqrtPrice: number | bigint;\n maxSqrtPrice: number | bigint;\n};\n\nexport function getIncreaseLiquidityMethodEncoder(): FixedSizeEncoder<IncreaseLiquidityMethodArgs> {\n return getDiscriminatedUnionEncoder([\n [\n 'ByTokenAmounts',\n getStructEncoder([\n ['tokenMaxA', getU64Encoder()],\n ['tokenMaxB', getU64Encoder()],\n ['minSqrtPrice', getU128Encoder()],\n ['maxSqrtPrice', getU128Encoder()],\n ]),\n ],\n ]) as FixedSizeEncoder<IncreaseLiquidityMethodArgs>;\n}\n\nexport function getIncreaseLiquidityMethodDecoder(): FixedSizeDecoder<IncreaseLiquidityMethod> {\n return getDiscriminatedUnionDecoder([\n [\n 'ByTokenAmounts',\n getStructDecoder([\n ['tokenMaxA', getU64Decoder()],\n ['tokenMaxB', getU64Decoder()],\n ['minSqrtPrice', getU128Decoder()],\n ['maxSqrtPrice', getU128Decoder()],\n ]),\n ],\n ]) as FixedSizeDecoder<IncreaseLiquidityMethod>;\n}\n\nexport function getIncreaseLiquidityMethodCodec(): FixedSizeCodec<\n IncreaseLiquidityMethodArgs,\n IncreaseLiquidityMethod\n> {\n return combineCodec(\n getIncreaseLiquidityMethodEncoder(),\n getIncreaseLiquidityMethodDecoder()\n );\n}\n\n// Data Enum Helpers.\nexport function increaseLiquidityMethod(\n kind: 'ByTokenAmounts',\n data: GetDiscriminatedUnionVariantContent<\n IncreaseLiquidityMethodArgs,\n '__kind',\n 'ByTokenAmounts'\n >\n): GetDiscriminatedUnionVariant<\n IncreaseLiquidityMethodArgs,\n '__kind',\n 'ByTokenAmounts'\n>;\nexport function increaseLiquidityMethod<\n K extends IncreaseLiquidityMethodArgs['__kind'],\n Data,\n>(kind: K, data?: Data) {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isIncreaseLiquidityMethod<\n K extends IncreaseLiquidityMethod['__kind'],\n>(\n kind: K,\n value: IncreaseLiquidityMethod\n): value is IncreaseLiquidityMethod & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type LiquidityDecreased = {\n whirlpool: Address;\n position: Address;\n tickLowerIndex: number;\n tickUpperIndex: number;\n liquidity: bigint;\n tokenAAmount: bigint;\n tokenBAmount: bigint;\n tokenATransferFee: bigint;\n tokenBTransferFee: bigint;\n};\n\nexport type LiquidityDecreasedArgs = {\n whirlpool: Address;\n position: Address;\n tickLowerIndex: number;\n tickUpperIndex: number;\n liquidity: number | bigint;\n tokenAAmount: number | bigint;\n tokenBAmount: number | bigint;\n tokenATransferFee: number | bigint;\n tokenBTransferFee: number | bigint;\n};\n\nexport function getLiquidityDecreasedEncoder(): FixedSizeEncoder<LiquidityDecreasedArgs> {\n return getStructEncoder([\n ['whirlpool', getAddressEncoder()],\n ['position', getAddressEncoder()],\n ['tickLowerIndex', getI32Encoder()],\n ['tickUpperIndex', getI32Encoder()],\n ['liquidity', getU128Encoder()],\n ['tokenAAmount', getU64Encoder()],\n ['tokenBAmount', getU64Encoder()],\n ['tokenATransferFee', getU64Encoder()],\n ['tokenBTransferFee', getU64Encoder()],\n ]);\n}\n\nexport function getLiquidityDecreasedDecoder(): FixedSizeDecoder<LiquidityDecreased> {\n return getStructDecoder([\n ['whirlpool', getAddressDecoder()],\n ['position', getAddressDecoder()],\n ['tickLowerIndex', getI32Decoder()],\n ['tickUpperIndex', getI32Decoder()],\n ['liquidity', getU128Decoder()],\n ['tokenAAmount', getU64Decoder()],\n ['tokenBAmount', getU64Decoder()],\n ['tokenATransferFee', getU64Decoder()],\n ['tokenBTransferFee', getU64Decoder()],\n ]);\n}\n\nexport function getLiquidityDecreasedCodec(): FixedSizeCodec<\n LiquidityDecreasedArgs,\n LiquidityDecreased\n> {\n return combineCodec(\n getLiquidityDecreasedEncoder(),\n getLiquidityDecreasedDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type LiquidityIncreased = {\n whirlpool: Address;\n position: Address;\n tickLowerIndex: number;\n tickUpperIndex: number;\n liquidity: bigint;\n tokenAAmount: bigint;\n tokenBAmount: bigint;\n tokenATransferFee: bigint;\n tokenBTransferFee: bigint;\n};\n\nexport type LiquidityIncreasedArgs = {\n whirlpool: Address;\n position: Address;\n tickLowerIndex: number;\n tickUpperIndex: number;\n liquidity: number | bigint;\n tokenAAmount: number | bigint;\n tokenBAmount: number | bigint;\n tokenATransferFee: number | bigint;\n tokenBTransferFee: number | bigint;\n};\n\nexport function getLiquidityIncreasedEncoder(): FixedSizeEncoder<LiquidityIncreasedArgs> {\n return getStructEncoder([\n ['whirlpool', getAddressEncoder()],\n ['position', getAddressEncoder()],\n ['tickLowerIndex', getI32Encoder()],\n ['tickUpperIndex', getI32Encoder()],\n ['liquidity', getU128Encoder()],\n ['tokenAAmount', getU64Encoder()],\n ['tokenBAmount', getU64Encoder()],\n ['tokenATransferFee', getU64Encoder()],\n ['tokenBTransferFee', getU64Encoder()],\n ]);\n}\n\nexport function getLiquidityIncreasedDecoder(): FixedSizeDecoder<LiquidityIncreased> {\n return getStructDecoder([\n ['whirlpool', getAddressDecoder()],\n ['position', getAddressDecoder()],\n ['tickLowerIndex', getI32Decoder()],\n ['tickUpperIndex', getI32Decoder()],\n ['liquidity', getU128Decoder()],\n ['tokenAAmount', getU64Decoder()],\n ['tokenBAmount', getU64Decoder()],\n ['tokenATransferFee', getU64Decoder()],\n ['tokenBTransferFee', getU64Decoder()],\n ]);\n}\n\nexport function getLiquidityIncreasedCodec(): FixedSizeCodec<\n LiquidityIncreasedArgs,\n LiquidityIncreased\n> {\n return combineCodec(\n getLiquidityIncreasedEncoder(),\n getLiquidityIncreasedDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getBooleanDecoder,\n getBooleanEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU64Decoder,\n getU64Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type LiquidityRepositioned = {\n whirlpool: Address;\n position: Address;\n existingRangeTickLowerIndex: number;\n existingRangeTickUpperIndex: number;\n newRangeTickLowerIndex: number;\n newRangeTickUpperIndex: number;\n existingRangeLiquidity: bigint;\n newRangeLiquidity: bigint;\n existingRangeTokenAAmount: bigint;\n existingRangeTokenBAmount: bigint;\n newRangeTokenAAmount: bigint;\n newRangeTokenBAmount: bigint;\n tokenATransferAmount: bigint;\n tokenATransferFee: bigint;\n isTokenATransferFromOwner: boolean;\n tokenBTransferAmount: bigint;\n tokenBTransferFee: bigint;\n isTokenBTransferFromOwner: boolean;\n};\n\nexport type LiquidityRepositionedArgs = {\n whirlpool: Address;\n position: Address;\n existingRangeTickLowerIndex: number;\n existingRangeTickUpperIndex: number;\n newRangeTickLowerIndex: number;\n newRangeTickUpperIndex: number;\n existingRangeLiquidity: number | bigint;\n newRangeLiquidity: number | bigint;\n existingRangeTokenAAmount: number | bigint;\n existingRangeTokenBAmount: number | bigint;\n newRangeTokenAAmount: number | bigint;\n newRangeTokenBAmount: number | bigint;\n tokenATransferAmount: number | bigint;\n tokenATransferFee: number | bigint;\n isTokenATransferFromOwner: boolean;\n tokenBTransferAmount: number | bigint;\n tokenBTransferFee: number | bigint;\n isTokenBTransferFromOwner: boolean;\n};\n\nexport function getLiquidityRepositionedEncoder(): FixedSizeEncoder<LiquidityRepositionedArgs> {\n return getStructEncoder([\n ['whirlpool', getAddressEncoder()],\n ['position', getAddressEncoder()],\n ['existingRangeTickLowerIndex', getI32Encoder()],\n ['existingRangeTickUpperIndex', getI32Encoder()],\n ['newRangeTickLowerIndex', getI32Encoder()],\n ['newRangeTickUpperIndex', getI32Encoder()],\n ['existingRangeLiquidity', getU128Encoder()],\n ['newRangeLiquidity', getU128Encoder()],\n ['existingRangeTokenAAmount', getU64Encoder()],\n ['existingRangeTokenBAmount', getU64Encoder()],\n ['newRangeTokenAAmount', getU64Encoder()],\n ['newRangeTokenBAmount', getU64Encoder()],\n ['tokenATransferAmount', getU64Encoder()],\n ['tokenATransferFee', getU64Encoder()],\n ['isTokenATransferFromOwner', getBooleanEncoder()],\n ['tokenBTransferAmount', getU64Encoder()],\n ['tokenBTransferFee', getU64Encoder()],\n ['isTokenBTransferFromOwner', getBooleanEncoder()],\n ]);\n}\n\nexport function getLiquidityRepositionedDecoder(): FixedSizeDecoder<LiquidityRepositioned> {\n return getStructDecoder([\n ['whirlpool', getAddressDecoder()],\n ['position', getAddressDecoder()],\n ['existingRangeTickLowerIndex', getI32Decoder()],\n ['existingRangeTickUpperIndex', getI32Decoder()],\n ['newRangeTickLowerIndex', getI32Decoder()],\n ['newRangeTickUpperIndex', getI32Decoder()],\n ['existingRangeLiquidity', getU128Decoder()],\n ['newRangeLiquidity', getU128Decoder()],\n ['existingRangeTokenAAmount', getU64Decoder()],\n ['existingRangeTokenBAmount', getU64Decoder()],\n ['newRangeTokenAAmount', getU64Decoder()],\n ['newRangeTokenBAmount', getU64Decoder()],\n ['tokenATransferAmount', getU64Decoder()],\n ['tokenATransferFee', getU64Decoder()],\n ['isTokenATransferFromOwner', getBooleanDecoder()],\n ['tokenBTransferAmount', getU64Decoder()],\n ['tokenBTransferFee', getU64Decoder()],\n ['isTokenBTransferFromOwner', getBooleanDecoder()],\n ]);\n}\n\nexport function getLiquidityRepositionedCodec(): FixedSizeCodec<\n LiquidityRepositionedArgs,\n LiquidityRepositioned\n> {\n return combineCodec(\n getLiquidityRepositionedEncoder(),\n getLiquidityRepositionedDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum LockType {\n Permanent,\n}\n\nexport type LockTypeArgs = LockType;\n\nexport function getLockTypeEncoder(): FixedSizeEncoder<LockTypeArgs> {\n return getEnumEncoder(LockType);\n}\n\nexport function getLockTypeDecoder(): FixedSizeDecoder<LockType> {\n return getEnumDecoder(LockType);\n}\n\nexport function getLockTypeCodec(): FixedSizeCodec<LockTypeArgs, LockType> {\n return combineCodec(getLockTypeEncoder(), getLockTypeDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getEnumDecoder,\n getEnumEncoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport enum LockTypeLabel {\n Permanent,\n}\n\nexport type LockTypeLabelArgs = LockTypeLabel;\n\nexport function getLockTypeLabelEncoder(): FixedSizeEncoder<LockTypeLabelArgs> {\n return getEnumEncoder(LockTypeLabel);\n}\n\nexport function getLockTypeLabelDecoder(): FixedSizeDecoder<LockTypeLabel> {\n return getEnumDecoder(LockTypeLabel);\n}\n\nexport function getLockTypeLabelCodec(): FixedSizeCodec<\n LockTypeLabelArgs,\n LockTypeLabel\n> {\n return combineCodec(getLockTypeLabelEncoder(), getLockTypeLabelDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU16Decoder,\n getU16Encoder,\n getU8Decoder,\n getU8Encoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type PoolInitialized = {\n whirlpool: Address;\n whirlpoolsConfig: Address;\n tokenMintA: Address;\n tokenMintB: Address;\n tickSpacing: number;\n tokenProgramA: Address;\n tokenProgramB: Address;\n decimalsA: number;\n decimalsB: number;\n initialSqrtPrice: bigint;\n};\n\nexport type PoolInitializedArgs = {\n whirlpool: Address;\n whirlpoolsConfig: Address;\n tokenMintA: Address;\n tokenMintB: Address;\n tickSpacing: number;\n tokenProgramA: Address;\n tokenProgramB: Address;\n decimalsA: number;\n decimalsB: number;\n initialSqrtPrice: number | bigint;\n};\n\nexport function getPoolInitializedEncoder(): FixedSizeEncoder<PoolInitializedArgs> {\n return getStructEncoder([\n ['whirlpool', getAddressEncoder()],\n ['whirlpoolsConfig', getAddressEncoder()],\n ['tokenMintA', getAddressEncoder()],\n ['tokenMintB', getAddressEncoder()],\n ['tickSpacing', getU16Encoder()],\n ['tokenProgramA', getAddressEncoder()],\n ['tokenProgramB', getAddressEncoder()],\n ['decimalsA', getU8Encoder()],\n ['decimalsB', getU8Encoder()],\n ['initialSqrtPrice', getU128Encoder()],\n ]);\n}\n\nexport function getPoolInitializedDecoder(): FixedSizeDecoder<PoolInitialized> {\n return getStructDecoder([\n ['whirlpool', getAddressDecoder()],\n ['whirlpoolsConfig', getAddressDecoder()],\n ['tokenMintA', getAddressDecoder()],\n ['tokenMintB', getAddressDecoder()],\n ['tickSpacing', getU16Decoder()],\n ['tokenProgramA', getAddressDecoder()],\n ['tokenProgramB', getAddressDecoder()],\n ['decimalsA', getU8Decoder()],\n ['decimalsB', getU8Decoder()],\n ['initialSqrtPrice', getU128Decoder()],\n ]);\n}\n\nexport function getPoolInitializedCodec(): FixedSizeCodec<\n PoolInitializedArgs,\n PoolInitialized\n> {\n return combineCodec(getPoolInitializedEncoder(), getPoolInitializedDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getAddressDecoder,\n getAddressEncoder,\n getI32Decoder,\n getI32Encoder,\n getStructDecoder,\n getStructEncoder,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type PositionOpened = {\n whirlpool: Address;\n position: Address;\n tickLowerIndex: number;\n tickUpperIndex: number;\n};\n\nexport type PositionOpenedArgs = PositionOpened;\n\nexport function getPositionOpenedEncoder(): FixedSizeEncoder<PositionOpenedArgs> {\n return getStructEncoder([\n ['whirlpool', getAddressEncoder()],\n ['position', getAddressEncoder()],\n ['tickLowerIndex', getI32Encoder()],\n ['tickUpperIndex', getI32Encoder()],\n ]);\n}\n\nexport function getPositionOpenedDecoder(): FixedSizeDecoder<PositionOpened> {\n return getStructDecoder([\n ['whirlpool', getAddressDecoder()],\n ['position', getAddressDecoder()],\n ['tickLowerIndex', getI32Decoder()],\n ['tickUpperIndex', getI32Decoder()],\n ]);\n}\n\nexport function getPositionOpenedCodec(): FixedSizeCodec<\n PositionOpenedArgs,\n PositionOpened\n> {\n return combineCodec(getPositionOpenedEncoder(), getPositionOpenedDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getStructDecoder,\n getStructEncoder,\n getU128Decoder,\n getU128Encoder,\n getU64Decoder,\n getU64Encoder,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n} from '@solana/kit';\n\nexport type PositionRewardInfo = {\n growthInsideCheckpoint: bigint;\n amountOwed: bigint;\n};\n\nexport type PositionRewardInfoArgs = {\n growthInsideCheckpoint: number | bigint;\n amountOwed: number | bigint;\n};\n\nexport function getPositionRewardInfoEncoder(): FixedSizeEncoder<PositionRewardInfoArgs> {\n return getStructEncoder([\n ['growthInsideCheckpoint', getU128Encoder()],\n ['amountOwed', getU64Encoder()],\n ]);\n}\n\nexport function getPositionRewardInfoDecoder(): FixedSizeDecoder<PositionRewardInfo> {\n return getStructDecoder([\n ['growthInsideCheckpoint', getU128Decoder()],\n ['amountOwed', getU64Decoder()],\n ]);\n}\n\nexport function getPositionRewardInfoCodec(): FixedSizeCodec<\n PositionRewardInfoArgs,\n PositionRewardInfo\n> {\n return combineCodec(\n getPositionRewardInfoEncoder(),\n getPositionRewardInfoDecoder()\n );\n}\n","/**\n * This code was AUTOGENERATED using the Codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun Codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n combineCodec,\n getArrayDecoder,\n getArrayEncoder,\n getStructDecoder,\n getStructEncoder,\n type Codec,\n type Decoder,\n type Encoder,\n} from '@solana/kit';\nimport {\n getRemainingAccountsSliceDecoder,\n getRemainingAccountsSliceEncoder,\n type RemainingAccountsSlice,\n type RemainingAccountsSliceArgs,\n} from '.';\n\nexport type RemainingAccountsInfo = { slices: Array<RemainingAccountsSlice> };\n\nexport type RemainingAccountsInfoArgs = {\n slices: Array<RemainingAccountsSliceArgs>;\n};\n\nexport function getRemainingAccountsInfoEncoder(): Encoder<RemainingAccountsInfoArgs> {\n return ge