@byreal-io/byreal-clmm-sdk 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +341 -0
  3. package/dist/esm/client/chain.d.ts +227 -0
  4. package/dist/esm/client/chain.d.ts.map +1 -0
  5. package/dist/esm/client/chain.js +1123 -0
  6. package/dist/esm/client/chain.js.map +1 -0
  7. package/dist/esm/client/index.d.ts +4 -0
  8. package/dist/esm/client/index.d.ts.map +1 -0
  9. package/dist/esm/client/index.js +4 -0
  10. package/dist/esm/client/index.js.map +1 -0
  11. package/dist/esm/client/models.d.ts +160 -0
  12. package/dist/esm/client/models.d.ts.map +1 -0
  13. package/dist/esm/client/models.js +2 -0
  14. package/dist/esm/client/models.js.map +1 -0
  15. package/dist/esm/client/utils.d.ts +103 -0
  16. package/dist/esm/client/utils.d.ts.map +1 -0
  17. package/dist/esm/client/utils.js +238 -0
  18. package/dist/esm/client/utils.js.map +1 -0
  19. package/dist/esm/constants.d.ts +19 -0
  20. package/dist/esm/constants.d.ts.map +1 -0
  21. package/dist/esm/constants.js +27 -0
  22. package/dist/esm/constants.js.map +1 -0
  23. package/dist/esm/index.d.ts +5 -0
  24. package/dist/esm/index.d.ts.map +1 -0
  25. package/dist/esm/index.js +5 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/instructions/baseInstruction.d.ts +74 -0
  28. package/dist/esm/instructions/baseInstruction.d.ts.map +1 -0
  29. package/dist/esm/instructions/baseInstruction.js +577 -0
  30. package/dist/esm/instructions/baseInstruction.js.map +1 -0
  31. package/dist/esm/instructions/constants.d.ts +29 -0
  32. package/dist/esm/instructions/constants.d.ts.map +1 -0
  33. package/dist/esm/instructions/constants.js +32 -0
  34. package/dist/esm/instructions/constants.js.map +1 -0
  35. package/dist/esm/instructions/getRawData.d.ts +60 -0
  36. package/dist/esm/instructions/getRawData.d.ts.map +1 -0
  37. package/dist/esm/instructions/getRawData.js +105 -0
  38. package/dist/esm/instructions/getRawData.js.map +1 -0
  39. package/dist/esm/instructions/index.d.ts +9 -0
  40. package/dist/esm/instructions/index.d.ts.map +1 -0
  41. package/dist/esm/instructions/index.js +9 -0
  42. package/dist/esm/instructions/index.js.map +1 -0
  43. package/dist/esm/instructions/instruction.d.ts +137 -0
  44. package/dist/esm/instructions/instruction.d.ts.map +1 -0
  45. package/dist/esm/instructions/instruction.js +152 -0
  46. package/dist/esm/instructions/instruction.js.map +1 -0
  47. package/dist/esm/instructions/layout.d.ts +217 -0
  48. package/dist/esm/instructions/layout.d.ts.map +1 -0
  49. package/dist/esm/instructions/layout.js +203 -0
  50. package/dist/esm/instructions/layout.js.map +1 -0
  51. package/dist/esm/instructions/libs/marshmallow/bufferLayout.d.ts +107 -0
  52. package/dist/esm/instructions/libs/marshmallow/bufferLayout.d.ts.map +1 -0
  53. package/dist/esm/instructions/libs/marshmallow/bufferLayout.js +49 -0
  54. package/dist/esm/instructions/libs/marshmallow/bufferLayout.js.map +1 -0
  55. package/dist/esm/instructions/libs/marshmallow/index.d.ts +88 -0
  56. package/dist/esm/instructions/libs/marshmallow/index.d.ts.map +1 -0
  57. package/dist/esm/instructions/libs/marshmallow/index.js +256 -0
  58. package/dist/esm/instructions/libs/marshmallow/index.js.map +1 -0
  59. package/dist/esm/instructions/models.d.ts +39 -0
  60. package/dist/esm/instructions/models.d.ts.map +1 -0
  61. package/dist/esm/instructions/models.js +14 -0
  62. package/dist/esm/instructions/models.js.map +1 -0
  63. package/dist/esm/instructions/pda.d.ts +52 -0
  64. package/dist/esm/instructions/pda.d.ts.map +1 -0
  65. package/dist/esm/instructions/pda.js +47 -0
  66. package/dist/esm/instructions/pda.js.map +1 -0
  67. package/dist/esm/instructions/target/idl/byreal_amm_v3.json +7242 -0
  68. package/dist/esm/instructions/target/idl/byreal_amm_v3_test.json +7680 -0
  69. package/dist/esm/instructions/target/types/byreal_amm_v3.d.ts +5329 -0
  70. package/dist/esm/instructions/target/types/byreal_amm_v3.d.ts.map +1 -0
  71. package/dist/esm/instructions/target/types/byreal_amm_v3.js +2 -0
  72. package/dist/esm/instructions/target/types/byreal_amm_v3.js.map +1 -0
  73. package/dist/esm/instructions/target/types/raydium_amm_v3.d.ts +4149 -0
  74. package/dist/esm/instructions/target/types/raydium_amm_v3.d.ts.map +1 -0
  75. package/dist/esm/instructions/target/types/raydium_amm_v3.js +2 -0
  76. package/dist/esm/instructions/target/types/raydium_amm_v3.js.map +1 -0
  77. package/dist/esm/instructions/utils/binaryUtils.d.ts +11 -0
  78. package/dist/esm/instructions/utils/binaryUtils.d.ts.map +1 -0
  79. package/dist/esm/instructions/utils/binaryUtils.js +77 -0
  80. package/dist/esm/instructions/utils/binaryUtils.js.map +1 -0
  81. package/dist/esm/instructions/utils/fetchWalletTokenAccounts.d.ts +42 -0
  82. package/dist/esm/instructions/utils/fetchWalletTokenAccounts.d.ts.map +1 -0
  83. package/dist/esm/instructions/utils/fetchWalletTokenAccounts.js +63 -0
  84. package/dist/esm/instructions/utils/fetchWalletTokenAccounts.js.map +1 -0
  85. package/dist/esm/instructions/utils/getTickArrayBitmapExtension.d.ts +8 -0
  86. package/dist/esm/instructions/utils/getTickArrayBitmapExtension.d.ts.map +1 -0
  87. package/dist/esm/instructions/utils/getTickArrayBitmapExtension.js +22 -0
  88. package/dist/esm/instructions/utils/getTickArrayBitmapExtension.js.map +1 -0
  89. package/dist/esm/instructions/utils/getTickArrayInfo.d.ts +16 -0
  90. package/dist/esm/instructions/utils/getTickArrayInfo.d.ts.map +1 -0
  91. package/dist/esm/instructions/utils/getTickArrayInfo.js +75 -0
  92. package/dist/esm/instructions/utils/getTickArrayInfo.js.map +1 -0
  93. package/dist/esm/instructions/utils/index.d.ts +21 -0
  94. package/dist/esm/instructions/utils/index.d.ts.map +1 -0
  95. package/dist/esm/instructions/utils/index.js +21 -0
  96. package/dist/esm/instructions/utils/index.js.map +1 -0
  97. package/dist/esm/instructions/utils/liquidityMath.d.ts +30 -0
  98. package/dist/esm/instructions/utils/liquidityMath.d.ts.map +1 -0
  99. package/dist/esm/instructions/utils/liquidityMath.js +138 -0
  100. package/dist/esm/instructions/utils/liquidityMath.js.map +1 -0
  101. package/dist/esm/instructions/utils/mathUtils.d.ts +11 -0
  102. package/dist/esm/instructions/utils/mathUtils.d.ts.map +1 -0
  103. package/dist/esm/instructions/utils/mathUtils.js +36 -0
  104. package/dist/esm/instructions/utils/mathUtils.js.map +1 -0
  105. package/dist/esm/instructions/utils/models.d.ts +93 -0
  106. package/dist/esm/instructions/utils/models.d.ts.map +1 -0
  107. package/dist/esm/instructions/utils/models.js +13 -0
  108. package/dist/esm/instructions/utils/models.js.map +1 -0
  109. package/dist/esm/instructions/utils/poolStateUtils.d.ts +134 -0
  110. package/dist/esm/instructions/utils/poolStateUtils.d.ts.map +1 -0
  111. package/dist/esm/instructions/utils/poolStateUtils.js +137 -0
  112. package/dist/esm/instructions/utils/poolStateUtils.js.map +1 -0
  113. package/dist/esm/instructions/utils/poolUtils.d.ts +136 -0
  114. package/dist/esm/instructions/utils/poolUtils.d.ts.map +1 -0
  115. package/dist/esm/instructions/utils/poolUtils.js +219 -0
  116. package/dist/esm/instructions/utils/poolUtils.js.map +1 -0
  117. package/dist/esm/instructions/utils/position.d.ts +36 -0
  118. package/dist/esm/instructions/utils/position.d.ts.map +1 -0
  119. package/dist/esm/instructions/utils/position.js +86 -0
  120. package/dist/esm/instructions/utils/position.js.map +1 -0
  121. package/dist/esm/instructions/utils/sqrtPriceMath.d.ts +14 -0
  122. package/dist/esm/instructions/utils/sqrtPriceMath.d.ts.map +1 -0
  123. package/dist/esm/instructions/utils/sqrtPriceMath.js +168 -0
  124. package/dist/esm/instructions/utils/sqrtPriceMath.js.map +1 -0
  125. package/dist/esm/instructions/utils/swapMath.d.ts +48 -0
  126. package/dist/esm/instructions/utils/swapMath.d.ts.map +1 -0
  127. package/dist/esm/instructions/utils/swapMath.js +263 -0
  128. package/dist/esm/instructions/utils/swapMath.js.map +1 -0
  129. package/dist/esm/instructions/utils/tick.d.ts +106 -0
  130. package/dist/esm/instructions/utils/tick.d.ts.map +1 -0
  131. package/dist/esm/instructions/utils/tick.js +390 -0
  132. package/dist/esm/instructions/utils/tick.js.map +1 -0
  133. package/dist/esm/instructions/utils/tickArrayUtils.d.ts +50 -0
  134. package/dist/esm/instructions/utils/tickArrayUtils.d.ts.map +1 -0
  135. package/dist/esm/instructions/utils/tickArrayUtils.js +157 -0
  136. package/dist/esm/instructions/utils/tickArrayUtils.js.map +1 -0
  137. package/dist/esm/instructions/utils/tickMath.d.ts +18 -0
  138. package/dist/esm/instructions/utils/tickMath.d.ts.map +1 -0
  139. package/dist/esm/instructions/utils/tickMath.js +34 -0
  140. package/dist/esm/instructions/utils/tickMath.js.map +1 -0
  141. package/dist/esm/instructions/utils/tickarrayBitmap.d.ts +38 -0
  142. package/dist/esm/instructions/utils/tickarrayBitmap.d.ts.map +1 -0
  143. package/dist/esm/instructions/utils/tickarrayBitmap.js +157 -0
  144. package/dist/esm/instructions/utils/tickarrayBitmap.js.map +1 -0
  145. package/dist/esm/instructions/utils/transfer.d.ts +7 -0
  146. package/dist/esm/instructions/utils/transfer.d.ts.map +1 -0
  147. package/dist/esm/instructions/utils/transfer.js +78 -0
  148. package/dist/esm/instructions/utils/transfer.js.map +1 -0
  149. package/dist/esm/utils/accountInfo.d.ts +27 -0
  150. package/dist/esm/utils/accountInfo.d.ts.map +1 -0
  151. package/dist/esm/utils/accountInfo.js +80 -0
  152. package/dist/esm/utils/accountInfo.js.map +1 -0
  153. package/dist/esm/utils/checkV0TxSize.d.ts +8 -0
  154. package/dist/esm/utils/checkV0TxSize.d.ts.map +1 -0
  155. package/dist/esm/utils/checkV0TxSize.js +18 -0
  156. package/dist/esm/utils/checkV0TxSize.js.map +1 -0
  157. package/dist/esm/utils/estimateComputeUnits.d.ts +11 -0
  158. package/dist/esm/utils/estimateComputeUnits.d.ts.map +1 -0
  159. package/dist/esm/utils/estimateComputeUnits.js +48 -0
  160. package/dist/esm/utils/estimateComputeUnits.js.map +1 -0
  161. package/dist/esm/utils/generatePubKey.d.ts +10 -0
  162. package/dist/esm/utils/generatePubKey.d.ts.map +1 -0
  163. package/dist/esm/utils/generatePubKey.js +14 -0
  164. package/dist/esm/utils/generatePubKey.js.map +1 -0
  165. package/dist/esm/utils/index.d.ts +9 -0
  166. package/dist/esm/utils/index.d.ts.map +1 -0
  167. package/dist/esm/utils/index.js +11 -0
  168. package/dist/esm/utils/index.js.map +1 -0
  169. package/dist/esm/utils/token.d.ts +9 -0
  170. package/dist/esm/utils/token.d.ts.map +1 -0
  171. package/dist/esm/utils/token.js +16 -0
  172. package/dist/esm/utils/token.js.map +1 -0
  173. package/dist/esm/utils/transactionUtils.d.ts +84 -0
  174. package/dist/esm/utils/transactionUtils.d.ts.map +1 -0
  175. package/dist/esm/utils/transactionUtils.js +138 -0
  176. package/dist/esm/utils/transactionUtils.js.map +1 -0
  177. package/dist/esm/utils/validateAndParsePublicKey.d.ts +15 -0
  178. package/dist/esm/utils/validateAndParsePublicKey.d.ts.map +1 -0
  179. package/dist/esm/utils/validateAndParsePublicKey.js +42 -0
  180. package/dist/esm/utils/validateAndParsePublicKey.js.map +1 -0
  181. package/package.json +66 -0
@@ -0,0 +1,577 @@
1
+ import * as anchor from '@coral-xyz/anchor';
2
+ import { Program } from '@coral-xyz/anchor';
3
+ import { TOKEN_PROGRAM_ID } from '@solana/spl-token';
4
+ import { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
5
+ import { Connection, clusterApiUrl } from '@solana/web3.js';
6
+ import BN from 'bn.js';
7
+ import { BYREAL_CLMM_PROGRAM_ID, BYREAL_CLMM_PROGRAM_ID_TEST } from '../constants.js';
8
+ import ByrealClmmIDL from './target/idl/byreal_amm_v3.json' with { type: 'json' };
9
+ import ByrealClmmTestIDL from './target/idl/byreal_amm_v3_test.json' with { type: 'json' };
10
+ export const getAmmV3Program = (programId) => {
11
+ // Create a read-only provider, no wallet needed
12
+ const provider = new anchor.AnchorProvider(new Connection(clusterApiUrl('mainnet-beta'), 'confirmed'), {}, // Empty wallet object, since only instruction creation is needed
13
+ { commitment: 'confirmed' });
14
+ if (programId.toBase58() === BYREAL_CLMM_PROGRAM_ID.toBase58()) {
15
+ return new Program(ByrealClmmIDL, provider);
16
+ }
17
+ if (programId.toBase58() === BYREAL_CLMM_PROGRAM_ID_TEST.toBase58()) {
18
+ return new Program(ByrealClmmTestIDL, provider);
19
+ }
20
+ throw new Error('[getAmmV3Program error]: Invalid program id');
21
+ };
22
+ export class BaseInstruction {
23
+ static async createPoolInstruction(programId, poolCreator, poolManager, ammConfigId, mintA, mintProgramIdA, mintB, mintProgramIdB, sqrtPriceX64, openTime, extendMintAccount) {
24
+ const program = getAmmV3Program(programId);
25
+ const _openTime = openTime || new BN(0);
26
+ const instruction = program.methods.createPool(sqrtPriceX64, _openTime).accounts({
27
+ poolCreator,
28
+ poolManager,
29
+ ammConfig: ammConfigId,
30
+ tokenMint0: mintA,
31
+ tokenMint1: mintB,
32
+ tokenProgram0: mintProgramIdA,
33
+ tokenProgram1: mintProgramIdB,
34
+ });
35
+ // If there are additional mint accounts, add them as remaining accounts
36
+ if (extendMintAccount && extendMintAccount.length > 0) {
37
+ instruction.remainingAccounts(extendMintAccount.map((k) => ({
38
+ pubkey: k,
39
+ isSigner: false,
40
+ isWritable: false,
41
+ })));
42
+ }
43
+ return await instruction.instruction();
44
+ }
45
+ static async openPositionFromLiquidityInstruction(programId, payer, poolId, positionNftOwner, positionNftMint, positionNftAccount, metadataAccount, protocolPosition, tickArrayLower, tickArrayUpper, personalPosition, ownerTokenAccountA, ownerTokenAccountB, tokenVaultA, tokenVaultB, tokenMintA, tokenMintB, tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amountMaxA, amountMaxB, withMetadata, exTickArrayBitmap) {
46
+ const program = getAmmV3Program(programId);
47
+ const instruction = program.methods
48
+ .openPositionV2(tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amountMaxA, amountMaxB, withMetadata === 'create', null // Set baseFlag to null, since this is based on liquidity
49
+ )
50
+ .accountsPartial({
51
+ payer,
52
+ positionNftOwner,
53
+ positionNftMint,
54
+ positionNftAccount,
55
+ metadataAccount,
56
+ poolState: poolId,
57
+ protocolPosition,
58
+ tickArrayLower,
59
+ tickArrayUpper,
60
+ personalPosition,
61
+ tokenAccount0: ownerTokenAccountA,
62
+ tokenAccount1: ownerTokenAccountB,
63
+ tokenVault0: tokenVaultA,
64
+ tokenVault1: tokenVaultB,
65
+ vault0Mint: tokenMintA,
66
+ vault1Mint: tokenMintB,
67
+ });
68
+ // If there are additional tick array bitmaps, add them as remaining accounts
69
+ if (exTickArrayBitmap) {
70
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
71
+ }
72
+ return await instruction.instruction();
73
+ }
74
+ static async openPositionFromLiquidityInstruction22(programId, payer, poolId, positionNftOwner, positionNftMint, positionNftAccount, protocolPosition, tickArrayLower, tickArrayUpper, personalPosition, ownerTokenAccountA, ownerTokenAccountB, tokenVaultA, tokenVaultB, tokenMintA, tokenMintB, tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amountMaxA, amountMaxB, withMetadata, exTickArrayBitmap) {
75
+ const program = getAmmV3Program(programId);
76
+ const instruction = program.methods
77
+ .openPositionWithToken22Nft(tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amountMaxA, amountMaxB, withMetadata === 'create', null)
78
+ .accountsPartial({
79
+ payer,
80
+ positionNftOwner,
81
+ positionNftMint,
82
+ positionNftAccount,
83
+ poolState: poolId,
84
+ // Here we need to manually pass in the generated PDA account, because anchor auto-generation uses little endian, while raydium's contract uses big endian (tick_lower_index.to_be_bytes()), using anchor auto-generation will cause errors;
85
+ protocolPosition,
86
+ tickArrayLower,
87
+ tickArrayUpper,
88
+ personalPosition,
89
+ tokenAccount0: ownerTokenAccountA,
90
+ tokenAccount1: ownerTokenAccountB,
91
+ tokenVault0: tokenVaultA,
92
+ tokenVault1: tokenVaultB,
93
+ vault0Mint: tokenMintA,
94
+ vault1Mint: tokenMintB,
95
+ });
96
+ // If there are additional tick array bitmaps, add them as remaining accounts
97
+ if (exTickArrayBitmap) {
98
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
99
+ }
100
+ return await instruction.instruction();
101
+ }
102
+ static async openPositionFromBaseInstruction(programId, payer, poolId, positionNftOwner, positionNftMint, positionNftAccount, metadataAccount, protocolPosition, tickArrayLower, tickArrayUpper, personalPosition, ownerTokenAccountA, ownerTokenAccountB, tokenVaultA, tokenVaultB, tokenMintA, tokenMintB, tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, withMetadata, base, baseAmount, otherAmountMax, exTickArrayBitmap) {
103
+ const program = getAmmV3Program(programId);
104
+ const instruction = program.methods
105
+ .openPositionV2(tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, new BN(0), // Set liquidity to 0, since this is based on base amount
106
+ base === 'MintA' ? baseAmount : otherAmountMax, // amount0Max
107
+ base === 'MintA' ? otherAmountMax : baseAmount, // amount1Max
108
+ withMetadata === 'create', base === 'MintA' // baseFlag
109
+ )
110
+ .accountsPartial({
111
+ payer,
112
+ positionNftOwner,
113
+ positionNftMint,
114
+ positionNftAccount,
115
+ metadataAccount,
116
+ poolState: poolId,
117
+ protocolPosition,
118
+ tickArrayLower,
119
+ tickArrayUpper,
120
+ personalPosition,
121
+ tokenAccount0: ownerTokenAccountA,
122
+ tokenAccount1: ownerTokenAccountB,
123
+ tokenVault0: tokenVaultA,
124
+ tokenVault1: tokenVaultB,
125
+ vault0Mint: tokenMintA,
126
+ vault1Mint: tokenMintB,
127
+ });
128
+ // If there are additional tick array bitmaps, add them as remaining accounts
129
+ if (exTickArrayBitmap) {
130
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
131
+ }
132
+ return await instruction.instruction();
133
+ }
134
+ static async openPositionFromBaseInstruction22(programId, payer, poolId, positionNftOwner, positionNftMint, positionNftAccount, protocolPosition, tickArrayLower, tickArrayUpper, personalPosition, ownerTokenAccountA, ownerTokenAccountB, tokenVaultA, tokenVaultB, tokenMintA, tokenMintB, tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, withMetadata, base, baseAmount, otherAmountMax, exTickArrayBitmap) {
135
+ const program = getAmmV3Program(programId);
136
+ const instruction = program.methods
137
+ .openPositionWithToken22Nft(tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, new BN(0), // Set liquidity to 0, since this is based on base amount
138
+ base === 'MintA' ? baseAmount : otherAmountMax, // amountMaxA
139
+ base === 'MintA' ? otherAmountMax : baseAmount, // amountMaxB
140
+ withMetadata === 'create', base === 'MintA' // baseFlag
141
+ )
142
+ .accountsPartial({
143
+ payer,
144
+ positionNftOwner,
145
+ positionNftMint,
146
+ positionNftAccount,
147
+ poolState: poolId,
148
+ // Here we need to manually pass in the generated PDA account, because anchor auto-generation uses little endian; while raydium's contract uses big endian (tick_lower_index.to_be_bytes())
149
+ protocolPosition,
150
+ tickArrayLower,
151
+ tickArrayUpper,
152
+ personalPosition,
153
+ tokenAccount0: ownerTokenAccountA,
154
+ tokenAccount1: ownerTokenAccountB,
155
+ tokenVault0: tokenVaultA,
156
+ tokenVault1: tokenVaultB,
157
+ vault0Mint: tokenMintA,
158
+ vault1Mint: tokenMintB,
159
+ });
160
+ // If there are additional tick array bitmaps, add them as remaining accounts
161
+ if (exTickArrayBitmap) {
162
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
163
+ }
164
+ return await instruction.instruction();
165
+ }
166
+ static async closePositionInstruction(programId, positionNftOwner, positionNftMint, positionNftAccount, nft2022) {
167
+ const program = getAmmV3Program(programId);
168
+ const instruction = program.methods.closePosition().accounts({
169
+ nftOwner: positionNftOwner,
170
+ positionNftMint,
171
+ positionNftAccount,
172
+ tokenProgram: nft2022 ? TOKEN_2022_PROGRAM_ID : TOKEN_PROGRAM_ID,
173
+ });
174
+ return await instruction.instruction();
175
+ }
176
+ static async increasePositionFromLiquidityInstruction(programId, positionNftOwner, positionNftAccount, personalPosition, poolId, protocolPosition, tickArrayLower, tickArrayUpper, ownerTokenAccountA, ownerTokenAccountB, mintVaultA, mintVaultB, mintMintA, mintMintB, liquidity, amountMaxA, amountMaxB, exTickArrayBitmap) {
177
+ const program = getAmmV3Program(programId);
178
+ const instruction = program.methods
179
+ .increaseLiquidityV2(liquidity, amountMaxA, amountMaxB, null // Set baseFlag to null, since this is based on liquidity instruction
180
+ )
181
+ .accountsPartial({
182
+ nftOwner: positionNftOwner,
183
+ nftAccount: positionNftAccount,
184
+ poolState: poolId,
185
+ protocolPosition,
186
+ personalPosition,
187
+ tickArrayLower,
188
+ tickArrayUpper,
189
+ tokenAccount0: ownerTokenAccountA,
190
+ tokenAccount1: ownerTokenAccountB,
191
+ tokenVault0: mintVaultA,
192
+ tokenVault1: mintVaultB,
193
+ vault0Mint: mintMintA,
194
+ vault1Mint: mintMintB,
195
+ });
196
+ // If there are additional tick array bitmaps, add them as remaining accounts
197
+ if (exTickArrayBitmap) {
198
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
199
+ }
200
+ return await instruction.instruction();
201
+ }
202
+ static async increasePositionFromBaseInstruction(programId, positionNftOwner, positionNftAccount, personalPosition, poolId, protocolPosition, tickArrayLower, tickArrayUpper, ownerTokenAccountA, ownerTokenAccountB, mintVaultA, mintVaultB, mintMintA, mintMintB, base, baseAmount, otherAmountMax, exTickArrayBitmap) {
203
+ const program = getAmmV3Program(programId);
204
+ const instruction = program.methods
205
+ .increaseLiquidityV2(new BN(0), // Set liquidity to 0, since this is based on base amount
206
+ base === 'MintA' ? baseAmount : otherAmountMax, // amount0Max
207
+ base === 'MintA' ? otherAmountMax : baseAmount, // amount1Max
208
+ base === 'MintA' // baseFlag
209
+ )
210
+ .accountsPartial({
211
+ nftOwner: positionNftOwner,
212
+ nftAccount: positionNftAccount,
213
+ poolState: poolId,
214
+ protocolPosition,
215
+ personalPosition,
216
+ tickArrayLower,
217
+ tickArrayUpper,
218
+ tokenAccount0: ownerTokenAccountA,
219
+ tokenAccount1: ownerTokenAccountB,
220
+ tokenVault0: mintVaultA,
221
+ tokenVault1: mintVaultB,
222
+ vault0Mint: mintMintA,
223
+ vault1Mint: mintMintB,
224
+ });
225
+ // If there are additional tick array bitmaps, add them as remaining accounts
226
+ if (exTickArrayBitmap) {
227
+ instruction.remainingAccounts([{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }]);
228
+ }
229
+ return await instruction.instruction();
230
+ }
231
+ static async decreaseLiquidityInstruction(programId, positionNftOwner, positionNftAccount, personalPosition, poolId, protocolPosition, tickArrayLower, tickArrayUpper, ownerTokenAccountA, ownerTokenAccountB, mintVaultA, mintVaultB, mintMintA, mintMintB, rewardAccounts, liquidity, amountMinA, amountMinB, exTickArrayBitmap) {
232
+ const program = getAmmV3Program(programId);
233
+ const instruction = program.methods.decreaseLiquidityV2(liquidity, amountMinA, amountMinB).accountsPartial({
234
+ nftOwner: positionNftOwner,
235
+ nftAccount: positionNftAccount,
236
+ personalPosition,
237
+ poolState: poolId,
238
+ protocolPosition,
239
+ tokenVault0: mintVaultA,
240
+ tokenVault1: mintVaultB,
241
+ tickArrayLower,
242
+ tickArrayUpper,
243
+ recipientTokenAccount0: ownerTokenAccountA,
244
+ recipientTokenAccount1: ownerTokenAccountB,
245
+ vault0Mint: mintMintA,
246
+ vault1Mint: mintMintB,
247
+ });
248
+ // Build remaining accounts
249
+ const remainingAccounts = [
250
+ ...(exTickArrayBitmap ? [{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }] : []),
251
+ ...rewardAccounts
252
+ .map((i) => [
253
+ { pubkey: i.poolRewardVault, isSigner: false, isWritable: true },
254
+ { pubkey: i.ownerRewardVault, isSigner: false, isWritable: true },
255
+ { pubkey: i.rewardMint, isSigner: false, isWritable: false },
256
+ ])
257
+ .flat(),
258
+ ];
259
+ if (remainingAccounts.length > 0) {
260
+ instruction.remainingAccounts(remainingAccounts);
261
+ }
262
+ return await instruction.instruction();
263
+ }
264
+ static async swapInstruction(programId, payer, poolId, ammConfigId, inputTokenAccount, outputTokenAccount, inputVault, outputVault, inputMint, outputMint, tickArray, observationId, amount, otherAmountThreshold, sqrtPriceLimitX64, isBaseInput, exTickArrayBitmap) {
265
+ const program = getAmmV3Program(programId);
266
+ const instruction = program.methods.swapV2(amount, otherAmountThreshold, sqrtPriceLimitX64, isBaseInput).accounts({
267
+ payer,
268
+ ammConfig: ammConfigId,
269
+ poolState: poolId,
270
+ inputTokenAccount,
271
+ outputTokenAccount,
272
+ inputVault,
273
+ outputVault,
274
+ observationState: observationId,
275
+ inputVaultMint: inputMint,
276
+ outputVaultMint: outputMint,
277
+ });
278
+ // Build remaining accounts
279
+ const remainingAccounts = [
280
+ ...(exTickArrayBitmap ? [{ pubkey: exTickArrayBitmap, isSigner: false, isWritable: true }] : []),
281
+ ...tickArray.map((i) => ({
282
+ pubkey: i,
283
+ isSigner: false,
284
+ isWritable: true,
285
+ })),
286
+ ];
287
+ if (remainingAccounts.length > 0) {
288
+ instruction.remainingAccounts(remainingAccounts);
289
+ }
290
+ return await instruction.instruction();
291
+ }
292
+ static async initRewardInstruction(programId, rewardFunder, funderTokenAccount, ammConfigId, poolId, rewardMint, rewardProgramId, openTime, endTime, emissionsPerSecondX64) {
293
+ const program = getAmmV3Program(programId);
294
+ const instruction = program.methods
295
+ .initializeReward({
296
+ openTime: new BN(openTime),
297
+ endTime: new BN(endTime),
298
+ emissionsPerSecondX64,
299
+ })
300
+ .accounts({
301
+ rewardFunder,
302
+ funderTokenAccount,
303
+ ammConfig: ammConfigId,
304
+ poolState: poolId,
305
+ rewardTokenMint: rewardMint,
306
+ rewardTokenProgram: rewardProgramId,
307
+ });
308
+ return await instruction.instruction();
309
+ }
310
+ static async setRewardInstruction(programId, authority, ammConfigId, poolId, rewardIndex, emissionsPerSecondX64, openTime, endTime) {
311
+ const program = getAmmV3Program(programId);
312
+ const instruction = program.methods
313
+ .setRewardParams(rewardIndex, emissionsPerSecondX64, new BN(openTime), new BN(endTime))
314
+ .accounts({
315
+ authority,
316
+ ammConfig: ammConfigId,
317
+ poolState: poolId,
318
+ });
319
+ return await instruction.instruction();
320
+ }
321
+ static async collectRewardInstruction(programId, rewardFunder, funderTokenAccount, poolId, rewardVault, rewardMint, rewardIndex) {
322
+ const program = getAmmV3Program(programId);
323
+ const instruction = program.methods.collectRemainingRewards(rewardIndex).accounts({
324
+ rewardFunder,
325
+ funderTokenAccount,
326
+ poolState: poolId,
327
+ rewardTokenVault: rewardVault,
328
+ rewardVaultMint: rewardMint,
329
+ });
330
+ return await instruction.instruction();
331
+ }
332
+ static async createAmmConfigInstruction(programId, owner, ammConfigId, index, tickSpacing, tradeFeeRate, protocolFeeRate, fundFeeRate) {
333
+ const program = getAmmV3Program(programId);
334
+ const instruction = program.methods
335
+ .createAmmConfig(index, tickSpacing, tradeFeeRate, protocolFeeRate, fundFeeRate)
336
+ .accountsPartial({
337
+ owner,
338
+ ammConfig: ammConfigId,
339
+ });
340
+ return await instruction.instruction();
341
+ }
342
+ static async updateAmmConfigInstruction(programId, ammConfigId, owner, param, value) {
343
+ const program = getAmmV3Program(programId);
344
+ const instruction = program.methods.updateAmmConfig(param, value).accounts({
345
+ owner,
346
+ ammConfig: ammConfigId,
347
+ });
348
+ return await instruction.instruction();
349
+ }
350
+ static async updatePoolStatusInstruction(programId, authority, poolState, status) {
351
+ const program = getAmmV3Program(programId);
352
+ const instruction = program.methods.updatePoolStatus(status).accounts({
353
+ poolState,
354
+ authority,
355
+ });
356
+ return await instruction.instruction();
357
+ }
358
+ static async createSupportMintAssociatedInstruction(programId, owner, tokenMint) {
359
+ const program = getAmmV3Program(programId);
360
+ const instruction = program.methods.createSupportMintAssociated().accounts({
361
+ owner,
362
+ tokenMint,
363
+ });
364
+ return await instruction.instruction();
365
+ }
366
+ static async createOperationAccountInstruction(programId, owner) {
367
+ const program = getAmmV3Program(programId);
368
+ const instruction = program.methods.createOperationAccount().accounts({
369
+ owner,
370
+ });
371
+ return await instruction.instruction();
372
+ }
373
+ static async updateOperationAccountInstruction(programId, owner, param, keys) {
374
+ const program = getAmmV3Program(programId);
375
+ const instruction = program.methods.updateOperationAccount(param, keys).accounts({
376
+ owner,
377
+ });
378
+ return await instruction.instruction();
379
+ }
380
+ static async transferRewardOwnerInstruction(programId, authority, poolState, newOwner) {
381
+ const program = getAmmV3Program(programId);
382
+ const instruction = program.methods.transferRewardOwner(newOwner).accounts({
383
+ poolState,
384
+ authority,
385
+ });
386
+ return await instruction.instruction();
387
+ }
388
+ static async updateRewardInfosInstruction(programId, poolState) {
389
+ const program = getAmmV3Program(programId);
390
+ const instruction = program.methods.updateRewardInfos().accounts({
391
+ poolState,
392
+ });
393
+ return await instruction.instruction();
394
+ }
395
+ static async collectProtocolFeeInstruction(programId, poolState, tokenVault0, tokenVault1, vault0Mint, vault1Mint, amount0Requested, amount1Requested) {
396
+ const program = getAmmV3Program(programId);
397
+ const instruction = program.methods.collectProtocolFee(amount0Requested, amount1Requested).accounts({
398
+ poolState,
399
+ tokenVault0,
400
+ tokenVault1,
401
+ vault0Mint,
402
+ vault1Mint,
403
+ });
404
+ return await instruction.instruction();
405
+ }
406
+ static async collectFundFeeInstruction(programId, poolState, tokenVault0, tokenVault1, vault0Mint, vault1Mint, amount0Requested, amount1Requested) {
407
+ const program = getAmmV3Program(programId);
408
+ const instruction = program.methods.collectFundFee(amount0Requested, amount1Requested).accounts({
409
+ poolState,
410
+ tokenVault0,
411
+ tokenVault1,
412
+ vault0Mint,
413
+ vault1Mint,
414
+ });
415
+ return await instruction.instruction();
416
+ }
417
+ static async _legacy_openPosition(programId, payer, positionNftOwner, positionNftMint, positionNftAccount, metadataAccount, poolState, protocolPosition, tickArrayLower, tickArrayUpper, personalPosition, tokenAccount0, tokenAccount1, tokenVault0, tokenVault1, tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amount0Max, amount1Max, remainingAccounts) {
418
+ const program = getAmmV3Program(programId);
419
+ const instruction = program.methods
420
+ .openPosition(tickLowerIndex, tickUpperIndex, tickArrayLowerStartIndex, tickArrayUpperStartIndex, liquidity, amount0Max, amount1Max)
421
+ .accountsPartial({
422
+ payer,
423
+ positionNftOwner,
424
+ positionNftMint,
425
+ positionNftAccount,
426
+ metadataAccount,
427
+ poolState,
428
+ protocolPosition,
429
+ tickArrayLower,
430
+ tickArrayUpper,
431
+ personalPosition,
432
+ tokenAccount0,
433
+ tokenAccount1,
434
+ tokenVault0,
435
+ tokenVault1,
436
+ });
437
+ // Add remaining accounts
438
+ if (remainingAccounts && remainingAccounts.length > 0) {
439
+ instruction.remainingAccounts(remainingAccounts);
440
+ }
441
+ return await instruction.instruction();
442
+ }
443
+ static async _legacy_increaseLiquidity(programId, nftOwner, nftAccount, poolState, protocolPosition, personalPosition, tickArrayLower, tickArrayUpper, tokenAccount0, tokenAccount1, tokenVault0, tokenVault1, liquidity, amount0Max, amount1Max, remainingAccounts) {
444
+ const program = getAmmV3Program(programId);
445
+ const instruction = program.methods.increaseLiquidity(liquidity, amount0Max, amount1Max).accountsPartial({
446
+ nftOwner,
447
+ nftAccount,
448
+ poolState,
449
+ protocolPosition,
450
+ personalPosition,
451
+ tickArrayLower,
452
+ tickArrayUpper,
453
+ tokenAccount0,
454
+ tokenAccount1,
455
+ tokenVault0,
456
+ tokenVault1,
457
+ });
458
+ // Add remaining accounts
459
+ if (remainingAccounts && remainingAccounts.length > 0) {
460
+ instruction.remainingAccounts(remainingAccounts);
461
+ }
462
+ return await instruction.instruction();
463
+ }
464
+ static async _legacy_decreaseLiquidity(programId, nftOwner, nftAccount, personalPosition, poolState, protocolPosition, tokenVaultA, tokenVaultB, tickArrayLower, tickArrayUpper, recipientTokenAccountA, recipientTokenAccountB, liquidity, amountAMin, amountBMin, remainingAccounts) {
465
+ const program = getAmmV3Program(programId);
466
+ const instruction = program.methods.decreaseLiquidity(liquidity, amountAMin, amountBMin).accountsPartial({
467
+ nftOwner,
468
+ nftAccount,
469
+ personalPosition,
470
+ poolState,
471
+ protocolPosition,
472
+ tokenVault0: tokenVaultA,
473
+ tokenVault1: tokenVaultB,
474
+ tickArrayLower,
475
+ tickArrayUpper,
476
+ recipientTokenAccount0: recipientTokenAccountA,
477
+ recipientTokenAccount1: recipientTokenAccountB,
478
+ });
479
+ // Add remaining accounts
480
+ if (remainingAccounts && remainingAccounts.length > 0) {
481
+ instruction.remainingAccounts(remainingAccounts);
482
+ }
483
+ return await instruction.instruction();
484
+ }
485
+ static async _legacy_swap(programId, payer, ammConfig, poolState, inputTokenAccount, outputTokenAccount, inputVault, outputVault, observationState, tickArray, amount, otherAmountThreshold, sqrtPriceLimitX64, isBaseInput, remainingAccounts) {
486
+ const program = getAmmV3Program(programId);
487
+ // First tick array as required account, the rest as remaining accounts
488
+ const [firstTickArray, ...restTickArrays] = tickArray;
489
+ const instruction = program.methods.swap(amount, otherAmountThreshold, sqrtPriceLimitX64, isBaseInput).accounts({
490
+ payer,
491
+ ammConfig,
492
+ poolState,
493
+ inputTokenAccount,
494
+ outputTokenAccount,
495
+ inputVault,
496
+ outputVault,
497
+ observationState,
498
+ tickArray: firstTickArray,
499
+ });
500
+ // Build remaining accounts, including remaining tick arrays and additional accounts
501
+ const allRemainingAccounts = [
502
+ ...restTickArrays.map((pubkey) => ({
503
+ pubkey,
504
+ isSigner: false,
505
+ isWritable: true,
506
+ })),
507
+ ...(remainingAccounts || []),
508
+ ];
509
+ if (allRemainingAccounts.length > 0) {
510
+ instruction.remainingAccounts(allRemainingAccounts);
511
+ }
512
+ return await instruction.instruction();
513
+ }
514
+ // Initialize admin group
515
+ static async initAmmAdminGroupInstruction(programId, params) {
516
+ const program = getAmmV3Program(programId);
517
+ const instruction = program.methods.initAmmAdminGroup({
518
+ feeKeeper: params.feeKeeper,
519
+ rewardConfigManager: params.rewardConfigManager,
520
+ rewardClaimManager: params.rewardClaimManager,
521
+ poolManager: params.poolManager,
522
+ emergencyManager: params.emergencyManager,
523
+ normalManager: params.normalManager,
524
+ });
525
+ return await instruction.instruction();
526
+ }
527
+ // Update admin group
528
+ static async updateAmmAdminGroupInstruction(programId, params) {
529
+ const program = getAmmV3Program(programId);
530
+ const instruction = program.methods.updateAmmAdminGroup({
531
+ feeKeeper: params.feeKeeper ?? null,
532
+ rewardConfigManager: params.rewardConfigManager ?? null,
533
+ rewardClaimManager: params.rewardClaimManager ?? null,
534
+ poolManager: params.poolManager ?? null,
535
+ emergencyManager: params.emergencyManager ?? null,
536
+ normalManager: params.normalManager ?? null,
537
+ });
538
+ return await instruction.instruction();
539
+ }
540
+ // New chain-off reward related instructions
541
+ static async depositOffchainRewardInstruction(programId, poolId, payer, authority, tokenMint, payerTokenAccount, tokenProgram, amount) {
542
+ const program = getAmmV3Program(programId);
543
+ const instruction = program.methods.depositOffchainReward(amount).accountsPartial({
544
+ payer,
545
+ poolId,
546
+ authority,
547
+ tokenMint,
548
+ payerTokenAccount,
549
+ tokenProgram,
550
+ });
551
+ return await instruction.instruction();
552
+ }
553
+ static async claimOffchainRewardInstruction(programId, poolId, claimer, authority, tokenMint, claimerTokenAccount, tokenProgram, amount) {
554
+ const program = getAmmV3Program(programId);
555
+ const instruction = program.methods.claimOffchainReward(amount).accountsPartial({
556
+ claimer,
557
+ authority,
558
+ poolId,
559
+ tokenMint,
560
+ claimerTokenAccount,
561
+ tokenProgram,
562
+ });
563
+ return await instruction.instruction();
564
+ }
565
+ static async withdrawOffchainRewardInstruction(programId, poolId, authority, tokenMint, receiverTokenAccount, tokenProgram, amount) {
566
+ const program = getAmmV3Program(programId);
567
+ const instruction = program.methods.withdrawOffchainReward(amount).accountsPartial({
568
+ authority,
569
+ tokenMint,
570
+ poolId,
571
+ receiverTokenAccount,
572
+ tokenProgram,
573
+ });
574
+ return await instruction.instruction();
575
+ }
576
+ }
577
+ //# sourceMappingURL=baseInstruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseInstruction.js","sourceRoot":"","sources":["../../../src/instructions/baseInstruction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import BN from 'bn.js';
2
+ export declare const ZERO: any;
3
+ export declare const ONE: any;
4
+ export declare const NEGATIVE_ONE: any;
5
+ export declare const Q64: any;
6
+ export declare const Q128: any;
7
+ export declare const MaxU64: any;
8
+ export declare const U64Resolution = 64;
9
+ export declare const MaxUint128: any;
10
+ export declare const MIN_TICK = -443636;
11
+ export declare const MAX_TICK: number;
12
+ export declare const MIN_SQRT_PRICE_X64: BN;
13
+ export declare const MAX_SQRT_PRICE_X64: BN;
14
+ export declare const MIN_SQRT_PRICE_X64_ADD_ONE: BN;
15
+ export declare const MAX_SQRT_PRICE_X64_SUB_ONE: BN;
16
+ export declare const BIT_PRECISION = 16;
17
+ export declare const LOG_B_2_X32 = "59543866431248";
18
+ export declare const LOG_B_P_ERR_MARGIN_LOWER_X64 = "184467440737095516";
19
+ export declare const LOG_B_P_ERR_MARGIN_UPPER_X64 = "15793534762490258745";
20
+ export declare const FEE_RATE_DENOMINATOR: any;
21
+ export declare enum Fee {
22
+ rate_500 = 500,// 500 / 10e6 = 0.0005
23
+ rate_3000 = 3000,// 3000/ 10e6 = 0.003
24
+ rate_10000 = 10000
25
+ }
26
+ export declare const TICK_SPACINGS: {
27
+ [amount in Fee]: number;
28
+ };
29
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/instructions/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,eAAO,MAAM,IAAI,KAAY,CAAC;AAC9B,eAAO,MAAM,GAAG,KAAY,CAAC;AAC7B,eAAO,MAAM,YAAY,KAAa,CAAC;AAEvC,eAAO,MAAM,GAAG,KAAqB,CAAC;AACtC,eAAO,MAAM,IAAI,KAAsB,CAAC;AAExC,eAAO,MAAM,MAAM,KAAe,CAAC;AAEnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,UAAU,KAAe,CAAC;AAEvC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,QAAQ,QAAY,CAAC;AAElC,eAAO,MAAM,kBAAkB,EAAE,EAAyB,CAAC;AAC3D,eAAO,MAAM,kBAAkB,EAAE,EAA4C,CAAC;AAE9E,eAAO,MAAM,0BAA0B,EAAE,EAAyB,CAAC;AACnE,eAAO,MAAM,0BAA0B,EAAE,EAA4C,CAAC;AAEtF,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAC5C,eAAO,MAAM,4BAA4B,uBAAuB,CAAC;AACjE,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAEnE,eAAO,MAAM,oBAAoB,KAA4B,CAAC;AAE9D,oBAAY,GAAG;IACb,QAAQ,MAAM,CAAE,uBAAuB;IACvC,SAAS,OAAO,CAAE,qBAAqB;IACvC,UAAU,QAAQ;CACnB;AACD,eAAO,MAAM,aAAa,EAAE;KAAG,MAAM,IAAI,GAAG,GAAG,MAAM;CAIpD,CAAC"}