UNPKG

@renec-foundation/redex-sdk

Version:

Typescript SDK to interact with Orca's Whirlpool program.

1,704 lines (1,703 loc) 55.7 kB
{ "version": "0.1.0", "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": "poolCreatorAuthority", "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": "whirlpool", "isMut": false, "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": "setPoolCreatorAuthority", "accounts": [ { "name": "whirlpoolsConfig", "isMut": true, "isSigner": false }, { "name": "poolCreatorAuthority", "isMut": false, "isSigner": true }, { "name": "newPoolCreatorAuthority", "isMut": false, "isSigner": false } ], "args": [] }, { "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": "setEnableFlag", "accounts": [ { "name": "whirlpoolsConfig", "isMut": false, "isSigner": false }, { "name": "whirlpool", "isMut": true, "isSigner": false }, { "name": "poolCreatorAuthority", "isMut": false, "isSigner": true } ], "args": [ { "name": "isEnabled", "type": "bool" } ] }, { "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" } ] } ], "accounts": [ { "name": "WhirlpoolsConfig", "type": { "kind": "struct", "fields": [ { "name": "feeAuthority", "type": "publicKey" }, { "name": "collectProtocolFeesAuthority", "type": "publicKey" }, { "name": "rewardEmissionsSuperAuthority", "type": "publicKey" }, { "name": "poolCreatorAuthority", "type": "publicKey" }, { "name": "defaultProtocolFeeRate", "type": "u16" } ] } }, { "name": "FeeTier", "type": { "kind": "struct", "fields": [ { "name": "whirlpoolsConfig", "type": "publicKey" }, { "name": "tickSpacing", "type": "u16" }, { "name": "defaultFeeRate", "type": "u16" } ] } }, { "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": "TickArray", "type": { "kind": "struct", "fields": [ { "name": "startTickIndex", "type": "i32" }, { "name": "ticks", "type": { "array": [ { "defined": "Tick" }, 88 ] } }, { "name": "whirlpool", "type": "publicKey" } ] } }, { "name": "Whirlpool", "type": { "kind": "struct", "fields": [ { "name": "isEnabled", "type": "bool" }, { "name": "whirlpoolsConfig", "type": "publicKey" }, { "name": "whirlpoolBump", "type": { "array": [ "u8", 1 ] } }, { "name": "tickSpacing", "type": "u16" }, { "name": "tickSpacingSeed", "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": "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": "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": "WhirlpoolBumps", "type": { "kind": "struct", "fields": [ { "name": "whirlpoolBump", "type": "u8" } ] } }, { "name": "CurrIndex", "type": { "kind": "enum", "variants": [ { "name": "Below" }, { "name": "Inside" }, { "name": "Above" } ] } }, { "name": "TickLabel", "type": { "kind": "enum", "variants": [ { "name": "Upper" }, { "name": "Lower" } ] } }, { "name": "Direction", "type": { "kind": "enum", "variants": [ { "name": "Left" }, { "name": "Right" } ] } } ], "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"