@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,9 @@
1
+ export * from './accountInfo.js';
2
+ export * from './validateAndParsePublicKey.js';
3
+ export * from './transactionUtils.js';
4
+ export * from './checkV0TxSize.js';
5
+ export * from './estimateComputeUnits.js';
6
+ export * from './generatePubKey.js';
7
+ export * from './token.js';
8
+ export declare function sleep(ms: number): Promise<void>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAE3B,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD"}
@@ -0,0 +1,11 @@
1
+ export * from './accountInfo.js';
2
+ export * from './validateAndParsePublicKey.js';
3
+ export * from './transactionUtils.js';
4
+ export * from './checkV0TxSize.js';
5
+ export * from './estimateComputeUnits.js';
6
+ export * from './generatePubKey.js';
7
+ export * from './token.js';
8
+ export async function sleep(ms) {
9
+ new Promise((resolve) => setTimeout(resolve, ms));
10
+ }
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAE3B,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Connection } from '@solana/web3.js';
2
+ /**
3
+ * Check if a mint is Token2022
4
+ * @param mintAddress token mint address
5
+ * @param connection Solana connection
6
+ * @returns
7
+ */
8
+ export declare function isToken2022(mintAddress: string, connection: Connection): Promise<boolean>;
9
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/utils/token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/F"}
@@ -0,0 +1,16 @@
1
+ import { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ /**
4
+ * Check if a mint is Token2022
5
+ * @param mintAddress token mint address
6
+ * @param connection Solana connection
7
+ * @returns
8
+ */
9
+ export async function isToken2022(mintAddress, connection) {
10
+ const mintPubkey = new PublicKey(mintAddress);
11
+ const info = await connection.getAccountInfo(mintPubkey);
12
+ if (!info)
13
+ return false;
14
+ return info.owner.toBase58() === TOKEN_2022_PROGRAM_ID.toBase58();
15
+ }
16
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,UAAsB;IAC3E,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,qBAAqB,CAAC,QAAQ,EAAE,CAAC;AACpE,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { Connection, PublicKey, Signer, TransactionInstruction, VersionedTransaction } from '@solana/web3.js';
2
+ export declare const DEFAULT_COMPUTE_UNIT_PRICE = 50000;
3
+ export type IMakeTransactionOptions = {
4
+ /**
5
+ * Compute unit limit
6
+ */
7
+ computeUnitLimit?: number;
8
+ /**
9
+ * Compute unit price (microLamports)
10
+ */
11
+ computeUnitPrice?: number;
12
+ /**
13
+ * Whether to automatically add compute budget instructions
14
+ */
15
+ addComputeBudget?: boolean;
16
+ } & /**
17
+ * maxFee and exactFee are mutually exclusive type definitions
18
+ * maxFee: Maximum transaction fee (SOL)
19
+ * exactFee: Exact transaction fee (SOL)
20
+ */ ({
21
+ maxFee: number;
22
+ exactFee?: never;
23
+ } | {
24
+ maxFee?: never;
25
+ exactFee: number;
26
+ } | {
27
+ maxFee?: undefined;
28
+ exactFee?: undefined;
29
+ });
30
+ export type ISendTransactionOptions = {
31
+ /**
32
+ * Skip preflight
33
+ */
34
+ skipPreflight?: boolean;
35
+ /**
36
+ * Commit level
37
+ */
38
+ preflightCommitment?: 'processed' | 'confirmed' | 'finalized';
39
+ /**
40
+ * Maximum retry times
41
+ */
42
+ maxRetries?: number;
43
+ /**
44
+ * Transaction confirmation timeout (milliseconds)
45
+ */
46
+ confirmationTimeout?: number;
47
+ /**
48
+ * Transaction confirmation retry interval (milliseconds)
49
+ */
50
+ confirmationRetryInterval?: number;
51
+ /**
52
+ * Transaction confirmation retry times
53
+ */
54
+ confirmationRetries?: number;
55
+ };
56
+ /**
57
+ * Create transaction object
58
+ * @param connection - Solana connection instance
59
+ * @param payerPublicKey - Payer public key
60
+ * @param instructions - Transaction instruction list
61
+ * @param options - Transaction options
62
+ * @param signers - Additional signers (usually new Keypairs created by the program)
63
+ * @returns Transaction object
64
+ */
65
+ export declare function makeTransaction(params: {
66
+ connection: Connection;
67
+ payerPublicKey: PublicKey;
68
+ instructions: TransactionInstruction[];
69
+ signers?: Signer[];
70
+ options?: IMakeTransactionOptions;
71
+ }): Promise<VersionedTransaction>;
72
+ /**
73
+ * Generic function for sending transactions, supporting front-end wallet signatures
74
+ * @param connection - Solana connection instance
75
+ * @param signTx - Method for signing transactions, usually calling the signTransaction method of the plugin wallet and signing with the new Keypair created by the program
76
+ * @param options - Transaction options
77
+ * @returns Transaction hash
78
+ */
79
+ export declare function sendTransaction(params: {
80
+ connection: Connection;
81
+ signTx: () => Promise<VersionedTransaction>;
82
+ options?: ISendTransactionOptions;
83
+ }): Promise<string>;
84
+ //# sourceMappingURL=transactionUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,SAAS,EACT,MAAM,EACN,sBAAsB,EAEtB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG;;;;GAID,CAAC,CACA;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,GACpC;IAAE,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAC/C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,mBAAmB,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9D;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8DhC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC,GAAG,OAAO,CAAC,MAAM,CAAC,CA2ClB"}
@@ -0,0 +1,138 @@
1
+ import { ComputeBudgetProgram, TransactionMessage, VersionedTransaction, } from '@solana/web3.js';
2
+ import { estimateComputeUnits } from './estimateComputeUnits.js';
3
+ export const DEFAULT_COMPUTE_UNIT_PRICE = 50000;
4
+ /**
5
+ * Create transaction object
6
+ * @param connection - Solana connection instance
7
+ * @param payerPublicKey - Payer public key
8
+ * @param instructions - Transaction instruction list
9
+ * @param options - Transaction options
10
+ * @param signers - Additional signers (usually new Keypairs created by the program)
11
+ * @returns Transaction object
12
+ */
13
+ export async function makeTransaction(params) {
14
+ const { connection, payerPublicKey, instructions, options = {}, signers = [] } = params;
15
+ const { computeUnitPrice = DEFAULT_COMPUTE_UNIT_PRICE, addComputeBudget = true, maxFee, exactFee } = options;
16
+ const { blockhash } = await connection.getLatestBlockhash();
17
+ const finalInstructions = [];
18
+ if (addComputeBudget) {
19
+ const computeUnitLimit = options.computeUnitLimit || (await estimateComputeUnits(connection, instructions, payerPublicKey, blockhash));
20
+ console.info(`Compute unit limit: ${computeUnitLimit}`);
21
+ // If maxFee is set, check if computeUnitPrice needs to be adjusted
22
+ let finalComputeUnitPrice = computeUnitPrice;
23
+ if (maxFee !== undefined) {
24
+ // Convert maxFee from SOL to microLamports
25
+ // 1 SOL = 10^9 lamports, 1 lamport = 10^6 microLamports
26
+ const maxFeeInMicroLamports = maxFee * 1_000_000_000_000_000;
27
+ // Calculate estimated fee under current settings
28
+ const estimatedFeeInMicroLamports = computeUnitLimit * computeUnitPrice;
29
+ // If estimated fee exceeds the maximum limit, adjust computeUnitPrice
30
+ if (estimatedFeeInMicroLamports > maxFeeInMicroLamports) {
31
+ finalComputeUnitPrice = Math.floor(maxFeeInMicroLamports / computeUnitLimit);
32
+ console.info(`Adjust compute unit price to meet maximum fee limit: ${finalComputeUnitPrice} microLamports`);
33
+ }
34
+ }
35
+ else if (typeof exactFee === 'number') {
36
+ // Convert exactFee from SOL to microLamports
37
+ const exactFeeInMicroLamports = exactFee * 1_000_000_000_000_000;
38
+ // Compute unit price = exact fee / compute unit limit
39
+ finalComputeUnitPrice = Math.ceil(exactFeeInMicroLamports / computeUnitLimit);
40
+ }
41
+ finalInstructions.push(ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnitLimit }), ComputeBudgetProgram.setComputeUnitPrice({ microLamports: finalComputeUnitPrice }));
42
+ }
43
+ // Add other instructions after compute budget
44
+ finalInstructions.push(...instructions);
45
+ // Create transaction message
46
+ const transactionMessage = new TransactionMessage({
47
+ payerKey: payerPublicKey,
48
+ recentBlockhash: blockhash,
49
+ instructions: finalInstructions,
50
+ });
51
+ // Compile to v0 message and create VersionedTransaction
52
+ const transaction = new VersionedTransaction(transactionMessage.compileToV0Message());
53
+ // Sign with additional signers first
54
+ if (signers.length > 0) {
55
+ transaction.sign(signers);
56
+ }
57
+ return transaction;
58
+ }
59
+ /**
60
+ * Generic function for sending transactions, supporting front-end wallet signatures
61
+ * @param connection - Solana connection instance
62
+ * @param signTx - Method for signing transactions, usually calling the signTransaction method of the plugin wallet and signing with the new Keypair created by the program
63
+ * @param options - Transaction options
64
+ * @returns Transaction hash
65
+ */
66
+ export async function sendTransaction(params) {
67
+ const { connection, options = {}, signTx } = params;
68
+ // Set default options
69
+ const { skipPreflight = false, preflightCommitment = 'confirmed', maxRetries = 3, confirmationTimeout = 30000, confirmationRetryInterval = 2000, confirmationRetries = 10, } = options;
70
+ const signedTx = await signTx?.();
71
+ // Send transaction
72
+ const txid = await connection.sendRawTransaction(signedTx.serialize(), {
73
+ skipPreflight,
74
+ preflightCommitment,
75
+ maxRetries,
76
+ });
77
+ console.info(`Transaction sent: ${txid}`);
78
+ try {
79
+ // Solution 1: Use connection.confirmTransaction
80
+ await connection.confirmTransaction(txid, 'confirmed');
81
+ console.info(`Transaction confirmed: ${txid}`);
82
+ }
83
+ catch (err) {
84
+ console.warn(`Transaction confirmation failed, falling back to polling: ${err.message}`);
85
+ // Solution 2: If confirmTransaction fails, fallback to optimized polling
86
+ const confirmed = await confirmTransactionWithOptimizedPolling(connection, txid, {
87
+ confirmationTimeout,
88
+ confirmationRetryInterval,
89
+ confirmationRetries,
90
+ });
91
+ if (!confirmed) {
92
+ console.warn(`Transaction may not be confirmed: ${txid}`);
93
+ }
94
+ }
95
+ return txid;
96
+ }
97
+ /**
98
+ * Optimized polling confirmation method - as a fallback solution
99
+ */
100
+ async function confirmTransactionWithOptimizedPolling(connection, txid, options) {
101
+ const { confirmationTimeout, confirmationRetryInterval, confirmationRetries } = options;
102
+ const startTime = Date.now();
103
+ let confirmed = false;
104
+ let retries = confirmationRetries;
105
+ // Use exponential backoff algorithm to reduce RPC call frequency
106
+ let currentInterval = confirmationRetryInterval;
107
+ const maxInterval = 5000; // Maximum interval 5 seconds
108
+ const backoffMultiplier = 1.5;
109
+ while (!confirmed && retries > 0 && Date.now() - startTime < confirmationTimeout) {
110
+ try {
111
+ // Use getSignatureStatuses for batch query (if there are multiple transactions to query together)
112
+ const statuses = await connection.getSignatureStatuses([txid]);
113
+ const status = statuses.value[0];
114
+ if (status && status.confirmationStatus === 'confirmed') {
115
+ confirmed = true;
116
+ }
117
+ else if (status && status.err) {
118
+ // If transaction failed, exit immediately
119
+ console.error(`Transaction failed: ${JSON.stringify(status.err)}`);
120
+ break;
121
+ }
122
+ else {
123
+ // Exponential backoff: gradually increase polling interval
124
+ await new Promise((resolve) => setTimeout(resolve, currentInterval));
125
+ currentInterval = Math.min(currentInterval * backoffMultiplier, maxInterval);
126
+ retries--;
127
+ }
128
+ }
129
+ catch (err) {
130
+ console.warn(`Failed to check transaction status, reason: ${err.message}`);
131
+ retries--;
132
+ await new Promise((resolve) => setTimeout(resolve, currentInterval));
133
+ currentInterval = Math.min(currentInterval * backoffMultiplier, maxInterval);
134
+ }
135
+ }
136
+ return confirmed;
137
+ }
138
+ //# sourceMappingURL=transactionUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionUtils.js","sourceRoot":"","sources":["../../../src/utils/transactionUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export type PublicKeyish = PublicKey | string;
3
+ export declare function tryParsePublicKey(v: string): PublicKey | string;
4
+ export declare function solToWSol(mint: PublicKeyish): PublicKey;
5
+ /**
6
+ * Validate and parse public key
7
+ *
8
+ * @param publicKey Public key
9
+ * @param solToWSol Whether to convert SOL to WSOL
10
+ */
11
+ export declare function validateAndParsePublicKey({ publicKey: orgPubKey, solToWSol, }: {
12
+ publicKey: PublicKeyish;
13
+ solToWSol?: boolean;
14
+ }): PublicKey;
15
+ //# sourceMappingURL=validateAndParsePublicKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAndParsePublicKey.d.ts","sourceRoot":"","sources":["../../../src/utils/validateAndParsePublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM/D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EAAE,SAAS,EACpB,SAAS,GACV,EAAE;IACD,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,SAAS,CAqBZ"}
@@ -0,0 +1,42 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { SOLMint, WSOLMint } from '../constants.js';
3
+ export function tryParsePublicKey(v) {
4
+ try {
5
+ return new PublicKey(v);
6
+ }
7
+ catch (e) {
8
+ return v;
9
+ }
10
+ }
11
+ export function solToWSol(mint) {
12
+ return validateAndParsePublicKey({ publicKey: mint, solToWSol: true });
13
+ }
14
+ /**
15
+ * Validate and parse public key
16
+ *
17
+ * @param publicKey Public key
18
+ * @param solToWSol Whether to convert SOL to WSOL
19
+ */
20
+ export function validateAndParsePublicKey({ publicKey: orgPubKey, solToWSol, }) {
21
+ const publicKey = tryParsePublicKey(orgPubKey.toString());
22
+ if (publicKey instanceof PublicKey) {
23
+ if (solToWSol && publicKey.equals(SOLMint))
24
+ return WSOLMint;
25
+ return publicKey;
26
+ }
27
+ if (solToWSol && publicKey.toString() === SOLMint.toBase58())
28
+ return WSOLMint;
29
+ if (typeof publicKey === 'string') {
30
+ if (publicKey === PublicKey.default.toBase58())
31
+ return PublicKey.default;
32
+ try {
33
+ const key = new PublicKey(publicKey);
34
+ return key;
35
+ }
36
+ catch {
37
+ throw new Error('invalid public key');
38
+ }
39
+ }
40
+ throw new Error('invalid public key');
41
+ }
42
+ //# sourceMappingURL=validateAndParsePublicKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAndParsePublicKey.js","sourceRoot":"","sources":["../../../src/utils/validateAndParsePublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIpD,MAAM,UAAU,iBAAiB,CAAC,CAAS;IACzC,IAAI,CAAC;QACH,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAkB;IAC1C,OAAO,yBAAyB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,SAAS,EAAE,SAAS,EACpB,SAAS,GAIV;IACC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE1D,IAAI,SAAS,YAAY,SAAS,EAAE,CAAC;QACnC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE;QAAE,OAAO,QAAQ,CAAC;IAE9E,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@byreal-io/byreal-clmm-sdk",
3
+ "version": "0.2.0",
4
+ "description": "Byreal CLMM SDK for Solana",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Byreal Team (https://github.com/byreal-git)",
8
+ "homepage": "https://github.com/byreal-git/byreal-clmm-sdk",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/byreal-git/byreal-clmm-sdk.git"
12
+ },
13
+ "keywords": [
14
+ "solana",
15
+ "clmm",
16
+ "concentrated-liquidity",
17
+ "defi",
18
+ "dex",
19
+ "amm",
20
+ "sdk"
21
+ ],
22
+ "main": "./dist/esm/index.js",
23
+ "types": "./dist/esm/index.d.ts",
24
+ "exports": {
25
+ "./package.json": "./package.json",
26
+ ".": {
27
+ "types": "./dist/esm/index.d.ts",
28
+ "import": "./dist/esm/index.js",
29
+ "default": "./dist/esm/index.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "README.md",
35
+ "LICENSE"
36
+ ],
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "engines": {
41
+ "node": ">=18.0.0"
42
+ },
43
+ "scripts": {
44
+ "clean": "rm -rf dist",
45
+ "build": "npm run clean && tsc",
46
+ "prepublishOnly": "npm run build",
47
+ "postversion": "git push && git push --tags",
48
+ "test": "vitest"
49
+ },
50
+ "dependencies": {
51
+ "@coral-xyz/anchor": "^0.31.1",
52
+ "@noble/hashes": "^1.8.0",
53
+ "@solana/buffer-layout": "^4.0.1",
54
+ "@solana/spl-token": "^0.4.14",
55
+ "@solana/web3.js": "^1.98.4",
56
+ "bn.js": "^5.2.1",
57
+ "bs58": "^6.0.0",
58
+ "decimal.js": "^10.5.0",
59
+ "lodash-es": "^4.17.21"
60
+ },
61
+ "devDependencies": {
62
+ "dotenv": "^16.5.0",
63
+ "typescript": "~5.7.2",
64
+ "vitest": "^3.0.9"
65
+ }
66
+ }