@chainlink/ccip-sdk 0.91.1 → 0.92.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 (273) hide show
  1. package/README.md +127 -80
  2. package/dist/aptos/hasher.d.ts.map +1 -1
  3. package/dist/aptos/hasher.js +7 -6
  4. package/dist/aptos/hasher.js.map +1 -1
  5. package/dist/aptos/index.d.ts +7 -2
  6. package/dist/aptos/index.d.ts.map +1 -1
  7. package/dist/aptos/index.js +29 -20
  8. package/dist/aptos/index.js.map +1 -1
  9. package/dist/aptos/logs.d.ts +5 -3
  10. package/dist/aptos/logs.d.ts.map +1 -1
  11. package/dist/aptos/logs.js +64 -27
  12. package/dist/aptos/logs.js.map +1 -1
  13. package/dist/aptos/token.d.ts.map +1 -1
  14. package/dist/aptos/token.js +2 -1
  15. package/dist/aptos/token.js.map +1 -1
  16. package/dist/aptos/types.js +6 -6
  17. package/dist/aptos/types.js.map +1 -1
  18. package/dist/chain.d.ts +36 -11
  19. package/dist/chain.d.ts.map +1 -1
  20. package/dist/chain.js +34 -2
  21. package/dist/chain.js.map +1 -1
  22. package/dist/commits.d.ts +2 -3
  23. package/dist/commits.d.ts.map +1 -1
  24. package/dist/commits.js +19 -8
  25. package/dist/commits.js.map +1 -1
  26. package/dist/errors/CCIPError.d.ts +48 -0
  27. package/dist/errors/CCIPError.d.ts.map +1 -0
  28. package/dist/errors/CCIPError.js +65 -0
  29. package/dist/errors/CCIPError.js.map +1 -0
  30. package/dist/errors/codes.d.ts +120 -0
  31. package/dist/errors/codes.d.ts.map +1 -0
  32. package/dist/errors/codes.js +156 -0
  33. package/dist/errors/codes.js.map +1 -0
  34. package/dist/errors/index.d.ts +26 -0
  35. package/dist/errors/index.d.ts.map +1 -0
  36. package/dist/errors/index.js +51 -0
  37. package/dist/errors/index.js.map +1 -0
  38. package/dist/errors/recovery.d.ts +6 -0
  39. package/dist/errors/recovery.d.ts.map +1 -0
  40. package/dist/errors/recovery.js +118 -0
  41. package/dist/errors/recovery.js.map +1 -0
  42. package/dist/errors/specialized.d.ts +637 -0
  43. package/dist/errors/specialized.d.ts.map +1 -0
  44. package/dist/errors/specialized.js +1298 -0
  45. package/dist/errors/specialized.js.map +1 -0
  46. package/dist/errors/utils.d.ts +11 -0
  47. package/dist/errors/utils.d.ts.map +1 -0
  48. package/dist/errors/utils.js +61 -0
  49. package/dist/errors/utils.js.map +1 -0
  50. package/dist/evm/abi/CommitStore_1_5.js +1 -1
  51. package/dist/evm/abi/LockReleaseTokenPool_1_5.js +1 -1
  52. package/dist/evm/abi/OffRamp_1_5.js +1 -1
  53. package/dist/evm/abi/OnRamp_1_5.js +1 -1
  54. package/dist/evm/abi/PriceRegistry_1_2.d.ts +443 -0
  55. package/dist/evm/abi/PriceRegistry_1_2.d.ts.map +1 -0
  56. package/dist/evm/abi/PriceRegistry_1_2.js +439 -0
  57. package/dist/evm/abi/PriceRegistry_1_2.js.map +1 -0
  58. package/dist/evm/const.d.ts +1 -0
  59. package/dist/evm/const.d.ts.map +1 -1
  60. package/dist/evm/const.js +2 -0
  61. package/dist/evm/const.js.map +1 -1
  62. package/dist/evm/hasher.d.ts.map +1 -1
  63. package/dist/evm/hasher.js +7 -6
  64. package/dist/evm/hasher.js.map +1 -1
  65. package/dist/evm/index.d.ts +9 -13
  66. package/dist/evm/index.d.ts.map +1 -1
  67. package/dist/evm/index.js +85 -68
  68. package/dist/evm/index.js.map +1 -1
  69. package/dist/evm/logs.d.ts.map +1 -1
  70. package/dist/evm/logs.js +47 -16
  71. package/dist/evm/logs.js.map +1 -1
  72. package/dist/evm/messages.d.ts +7 -6
  73. package/dist/evm/messages.d.ts.map +1 -1
  74. package/dist/evm/offchain.js +1 -1
  75. package/dist/evm/offchain.js.map +1 -1
  76. package/dist/evm/types.d.ts +10 -0
  77. package/dist/evm/types.d.ts.map +1 -0
  78. package/dist/evm/types.js +2 -0
  79. package/dist/evm/types.js.map +1 -0
  80. package/dist/execution.d.ts.map +1 -1
  81. package/dist/execution.js +9 -5
  82. package/dist/execution.js.map +1 -1
  83. package/dist/extra-args.d.ts.map +1 -1
  84. package/dist/extra-args.js +4 -3
  85. package/dist/extra-args.js.map +1 -1
  86. package/dist/gas.d.ts.map +1 -1
  87. package/dist/gas.js +3 -2
  88. package/dist/gas.js.map +1 -1
  89. package/dist/hasher/hasher.d.ts.map +1 -1
  90. package/dist/hasher/hasher.js +2 -1
  91. package/dist/hasher/hasher.js.map +1 -1
  92. package/dist/hasher/merklemulti.d.ts.map +1 -1
  93. package/dist/hasher/merklemulti.js +9 -8
  94. package/dist/hasher/merklemulti.js.map +1 -1
  95. package/dist/index.d.ts +5 -2
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +6 -2
  98. package/dist/index.js.map +1 -1
  99. package/dist/offchain.d.ts.map +1 -1
  100. package/dist/offchain.js +5 -8
  101. package/dist/offchain.js.map +1 -1
  102. package/dist/requests.d.ts +1 -1
  103. package/dist/requests.d.ts.map +1 -1
  104. package/dist/requests.js +37 -43
  105. package/dist/requests.js.map +1 -1
  106. package/dist/selectors.d.ts.map +1 -1
  107. package/dist/selectors.js +22 -0
  108. package/dist/selectors.js.map +1 -1
  109. package/dist/solana/cleanup.d.ts +2 -2
  110. package/dist/solana/cleanup.d.ts.map +1 -1
  111. package/dist/solana/cleanup.js +2 -3
  112. package/dist/solana/cleanup.js.map +1 -1
  113. package/dist/solana/exec.d.ts.map +1 -1
  114. package/dist/solana/exec.js +12 -12
  115. package/dist/solana/exec.js.map +1 -1
  116. package/dist/solana/hasher.d.ts.map +1 -1
  117. package/dist/solana/hasher.js +6 -5
  118. package/dist/solana/hasher.js.map +1 -1
  119. package/dist/solana/index.d.ts +30 -13
  120. package/dist/solana/index.d.ts.map +1 -1
  121. package/dist/solana/index.js +96 -143
  122. package/dist/solana/index.js.map +1 -1
  123. package/dist/solana/logs.d.ts +15 -0
  124. package/dist/solana/logs.d.ts.map +1 -0
  125. package/dist/solana/logs.js +106 -0
  126. package/dist/solana/logs.js.map +1 -0
  127. package/dist/solana/offchain.d.ts.map +1 -1
  128. package/dist/solana/offchain.js +6 -5
  129. package/dist/solana/offchain.js.map +1 -1
  130. package/dist/solana/patchBorsh.d.ts.map +1 -1
  131. package/dist/solana/patchBorsh.js +3 -2
  132. package/dist/solana/patchBorsh.js.map +1 -1
  133. package/dist/solana/send.d.ts.map +1 -1
  134. package/dist/solana/send.js +8 -7
  135. package/dist/solana/send.js.map +1 -1
  136. package/dist/solana/utils.d.ts +7 -8
  137. package/dist/solana/utils.d.ts.map +1 -1
  138. package/dist/solana/utils.js +23 -11
  139. package/dist/solana/utils.js.map +1 -1
  140. package/dist/sui/discovery.d.ts +18 -0
  141. package/dist/sui/discovery.d.ts.map +1 -0
  142. package/dist/sui/discovery.js +116 -0
  143. package/dist/sui/discovery.js.map +1 -0
  144. package/dist/sui/events.d.ts +36 -0
  145. package/dist/sui/events.d.ts.map +1 -0
  146. package/dist/sui/events.js +179 -0
  147. package/dist/sui/events.js.map +1 -0
  148. package/dist/sui/hasher.d.ts.map +1 -1
  149. package/dist/sui/hasher.js +6 -5
  150. package/dist/sui/hasher.js.map +1 -1
  151. package/dist/sui/index.d.ts +69 -41
  152. package/dist/sui/index.d.ts.map +1 -1
  153. package/dist/sui/index.js +402 -65
  154. package/dist/sui/index.js.map +1 -1
  155. package/dist/sui/manuallyExec/encoder.d.ts +8 -0
  156. package/dist/sui/manuallyExec/encoder.d.ts.map +1 -0
  157. package/dist/sui/manuallyExec/encoder.js +76 -0
  158. package/dist/sui/manuallyExec/encoder.js.map +1 -0
  159. package/dist/sui/manuallyExec/index.d.ts +37 -0
  160. package/dist/sui/manuallyExec/index.d.ts.map +1 -0
  161. package/dist/sui/manuallyExec/index.js +81 -0
  162. package/dist/sui/manuallyExec/index.js.map +1 -0
  163. package/dist/sui/objects.d.ts +46 -0
  164. package/dist/sui/objects.d.ts.map +1 -0
  165. package/dist/sui/objects.js +259 -0
  166. package/dist/sui/objects.js.map +1 -0
  167. package/dist/ton/bindings/offramp.d.ts +48 -0
  168. package/dist/ton/bindings/offramp.d.ts.map +1 -0
  169. package/dist/ton/bindings/offramp.js +63 -0
  170. package/dist/ton/bindings/offramp.js.map +1 -0
  171. package/dist/ton/bindings/onramp.d.ts +40 -0
  172. package/dist/ton/bindings/onramp.d.ts.map +1 -0
  173. package/dist/ton/bindings/onramp.js +51 -0
  174. package/dist/ton/bindings/onramp.js.map +1 -0
  175. package/dist/ton/bindings/router.d.ts +47 -0
  176. package/dist/ton/bindings/router.d.ts.map +1 -0
  177. package/dist/ton/bindings/router.js +51 -0
  178. package/dist/ton/bindings/router.js.map +1 -0
  179. package/dist/ton/exec.d.ts +18 -0
  180. package/dist/ton/exec.d.ts.map +1 -0
  181. package/dist/ton/exec.js +28 -0
  182. package/dist/ton/exec.js.map +1 -0
  183. package/dist/ton/hasher.d.ts +27 -0
  184. package/dist/ton/hasher.d.ts.map +1 -0
  185. package/dist/ton/hasher.js +134 -0
  186. package/dist/ton/hasher.js.map +1 -0
  187. package/dist/ton/index.d.ts +247 -0
  188. package/dist/ton/index.d.ts.map +1 -0
  189. package/dist/ton/index.js +781 -0
  190. package/dist/ton/index.js.map +1 -0
  191. package/dist/ton/logs.d.ts +26 -0
  192. package/dist/ton/logs.d.ts.map +1 -0
  193. package/dist/ton/logs.js +126 -0
  194. package/dist/ton/logs.js.map +1 -0
  195. package/dist/ton/types.d.ts +37 -0
  196. package/dist/ton/types.d.ts.map +1 -0
  197. package/dist/ton/types.js +92 -0
  198. package/dist/ton/types.js.map +1 -0
  199. package/dist/ton/utils.d.ts +67 -0
  200. package/dist/ton/utils.d.ts.map +1 -0
  201. package/dist/ton/utils.js +425 -0
  202. package/dist/ton/utils.js.map +1 -0
  203. package/dist/types.d.ts +4 -2
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js +1 -0
  206. package/dist/types.js.map +1 -1
  207. package/dist/utils.d.ts +10 -0
  208. package/dist/utils.d.ts.map +1 -1
  209. package/dist/utils.js +52 -17
  210. package/dist/utils.js.map +1 -1
  211. package/package.json +12 -10
  212. package/src/aptos/hasher.ts +10 -6
  213. package/src/aptos/index.ts +50 -31
  214. package/src/aptos/logs.ts +85 -29
  215. package/src/aptos/token.ts +5 -1
  216. package/src/aptos/types.ts +6 -6
  217. package/src/chain.ts +83 -12
  218. package/src/commits.ts +23 -11
  219. package/src/errors/CCIPError.ts +86 -0
  220. package/src/errors/codes.ts +179 -0
  221. package/src/errors/index.ts +175 -0
  222. package/src/errors/recovery.ts +170 -0
  223. package/src/errors/specialized.ts +1655 -0
  224. package/src/errors/utils.ts +73 -0
  225. package/src/evm/abi/CommitStore_1_5.ts +1 -1
  226. package/src/evm/abi/LockReleaseTokenPool_1_5.ts +1 -1
  227. package/src/evm/abi/OffRamp_1_5.ts +1 -1
  228. package/src/evm/abi/OnRamp_1_5.ts +1 -1
  229. package/src/evm/abi/PriceRegistry_1_2.ts +438 -0
  230. package/src/evm/const.ts +2 -0
  231. package/src/evm/hasher.ts +7 -6
  232. package/src/evm/index.ts +104 -86
  233. package/src/evm/logs.ts +64 -16
  234. package/src/evm/messages.ts +14 -14
  235. package/src/evm/offchain.ts +1 -1
  236. package/src/evm/types.ts +11 -0
  237. package/src/execution.ts +13 -9
  238. package/src/extra-args.ts +4 -3
  239. package/src/gas.ts +10 -3
  240. package/src/hasher/hasher.ts +2 -1
  241. package/src/hasher/merklemulti.ts +18 -8
  242. package/src/index.ts +14 -2
  243. package/src/offchain.ts +10 -14
  244. package/src/requests.ts +51 -53
  245. package/src/selectors.ts +23 -0
  246. package/src/solana/cleanup.ts +2 -4
  247. package/src/solana/exec.ts +13 -13
  248. package/src/solana/hasher.ts +9 -5
  249. package/src/solana/index.ts +126 -200
  250. package/src/solana/logs.ts +155 -0
  251. package/src/solana/offchain.ts +10 -7
  252. package/src/solana/patchBorsh.ts +3 -2
  253. package/src/solana/send.ts +14 -7
  254. package/src/solana/utils.ts +31 -17
  255. package/src/sui/discovery.ts +163 -0
  256. package/src/sui/events.ts +328 -0
  257. package/src/sui/hasher.ts +6 -5
  258. package/src/sui/index.ts +528 -80
  259. package/src/sui/manuallyExec/encoder.ts +88 -0
  260. package/src/sui/manuallyExec/index.ts +137 -0
  261. package/src/sui/objects.ts +358 -0
  262. package/src/ton/bindings/offramp.ts +96 -0
  263. package/src/ton/bindings/onramp.ts +72 -0
  264. package/src/ton/bindings/router.ts +65 -0
  265. package/src/ton/exec.ts +44 -0
  266. package/src/ton/hasher.ts +184 -0
  267. package/src/ton/index.ts +989 -0
  268. package/src/ton/logs.ts +157 -0
  269. package/src/ton/types.ts +143 -0
  270. package/src/ton/utils.ts +514 -0
  271. package/src/types.ts +6 -2
  272. package/src/utils.ts +58 -23
  273. package/tsconfig.json +2 -1
@@ -1,7 +1,7 @@
1
- import { Buffer } from 'buffer';
2
1
  import { eventDiscriminator } from '@coral-xyz/anchor';
3
2
  import { ComputeBudgetProgram, PublicKey, SendTransactionError, TransactionMessage, VersionedTransaction, } from '@solana/web3.js';
4
3
  import { dataLength, dataSlice, hexlify } from 'ethers';
4
+ import { CCIPSolanaComputeUnitsExceededError, CCIPTransactionNotFinalizedError, } from "../errors/index.js";
5
5
  import { getDataBytes, sleep } from "../utils.js";
6
6
  /**
7
7
  * Generates a hex-encoded discriminator for a Solana event.
@@ -11,14 +11,6 @@ import { getDataBytes, sleep } from "../utils.js";
11
11
  export function hexDiscriminator(eventName) {
12
12
  return hexlify(eventDiscriminator(eventName));
13
13
  }
14
- /**
15
- * Converts bytes to a Node.js Buffer.
16
- * @param bytes - Bytes to convert.
17
- * @returns Node.js Buffer.
18
- */
19
- export function bytesToBuffer(bytes) {
20
- return Buffer.from(getDataBytes(bytes).buffer);
21
- }
22
14
  /**
23
15
  * Waits for a Solana transaction to reach finalized status.
24
16
  * @param connection - Solana connection instance.
@@ -35,7 +27,7 @@ export async function waitForFinalization(connection, signature, intervalMs = 50
35
27
  }
36
28
  await sleep(intervalMs);
37
29
  }
38
- throw new Error(`Transaction ${signature} not finalized after timeout`);
30
+ throw new CCIPTransactionNotFinalizedError(signature);
39
31
  }
40
32
  /**
41
33
  * Converts a camelCase string to snake_case.
@@ -279,7 +271,7 @@ export async function simulateAndSendTxs(ctx, wallet, { instructions, mainIndex,
279
271
  computeUnitLimit = Math.ceil(simulated * 1.1);
280
272
  }
281
273
  else {
282
- throw new Error(`Main simulation exceeds specified computeUnits limit. simulated=${simulated}, limit=${computeUnits}`);
274
+ throw new CCIPSolanaComputeUnitsExceededError(simulated, computeUnits);
283
275
  }
284
276
  break;
285
277
  }
@@ -311,4 +303,24 @@ export async function simulateAndSendTxs(ctx, wallet, { instructions, mainIndex,
311
303
  }
312
304
  return mainHash;
313
305
  }
306
+ /**
307
+ * Convert TokenPool's rate limit to RateLimiterState object
308
+ */
309
+ export function convertRateLimiter(input) {
310
+ if (!input.cfg.enabled)
311
+ return null;
312
+ const tokens = BigInt(input.tokens.toString());
313
+ const out = {
314
+ capacity: BigInt(input.cfg.capacity.toString()),
315
+ rate: BigInt(input.cfg.rate.toString()),
316
+ get tokens() {
317
+ const cur = tokens + this.rate * BigInt(Math.floor(Date.now() / 1000) - input.lastUpdated.toNumber());
318
+ if (cur < this.capacity)
319
+ return cur;
320
+ else
321
+ return this.capacity;
322
+ },
323
+ };
324
+ return out;
325
+ }
314
326
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/solana/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/solana/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { SuiClient } from '@mysten/sui/client';
2
+ /**
3
+ * Discovers the CCIP package ID associated with a given Sui onramp package.
4
+ *
5
+ * @param client - sui client
6
+ * @param onramp - sui onramp package id
7
+ * @returns ccip package id
8
+ */
9
+ export declare const discoverCCIP: (client: SuiClient, onramp: string) => Promise<string>;
10
+ /**
11
+ * Gets the Sui offramp package ID associated with a given CCIP package ID.
12
+ *
13
+ * @param client - Sui client
14
+ * @param ccip - Sui CCIP Package Id
15
+ * @returns Sui offramp package id
16
+ */
17
+ export declare const discoverOfframp: (client: SuiClient, ccip: string) => Promise<string>;
18
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/sui/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AASnD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,SAAS,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAuBpF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,QAAQ,SAAS,EAAE,MAAM,MAAM,oBAkHpE,CAAA"}
@@ -0,0 +1,116 @@
1
+ import { Transaction } from '@mysten/sui/transactions';
2
+ import { normalizeSuiAddress } from '@mysten/sui/utils';
3
+ import { hexlify } from 'ethers';
4
+ import { CCIPError } from "../errors/CCIPError.js";
5
+ import { CCIPErrorCode } from "../errors/codes.js";
6
+ import { bytesToBuffer } from "../utils.js";
7
+ /**
8
+ * Discovers the CCIP package ID associated with a given Sui onramp package.
9
+ *
10
+ * @param client - sui client
11
+ * @param onramp - sui onramp package id
12
+ * @returns ccip package id
13
+ */
14
+ export const discoverCCIP = async (client, onramp) => {
15
+ const tx = new Transaction();
16
+ tx.moveCall({
17
+ target: `${onramp}::onramp::get_ccip_package_id`,
18
+ });
19
+ const inspectResult = await client.devInspectTransactionBlock({
20
+ sender: normalizeSuiAddress('0x0'),
21
+ transactionBlock: tx,
22
+ });
23
+ const returnValues = inspectResult.results?.[0]?.returnValues;
24
+ if (!returnValues || returnValues.length === 0) {
25
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'No return values from dev inspect');
26
+ }
27
+ const [valueBytes] = returnValues[0];
28
+ if (!valueBytes) {
29
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'Unable to decode CCIP package id from return values');
30
+ }
31
+ return normalizeSuiAddress(hexlify(bytesToBuffer(valueBytes)));
32
+ };
33
+ /**
34
+ * Gets the Sui offramp package ID associated with a given CCIP package ID.
35
+ *
36
+ * @param client - Sui client
37
+ * @param ccip - Sui CCIP Package Id
38
+ * @returns Sui offramp package id
39
+ */
40
+ export const discoverOfframp = async (client, ccip) => {
41
+ // Get CCIP publish tx info
42
+ // Get the owner cap created in that tx.
43
+ // Get owner of the ownercap object.
44
+ // Get objects owned by that owner.
45
+ // Trough each of the objects owned by that owner, get the original transaction that created them.
46
+ // Take any of the objects created by that transaction, check its info to find the OffRamp package.
47
+ const ccipObject = await client.getObject({
48
+ id: ccip,
49
+ options: {
50
+ showPreviousTransaction: true,
51
+ },
52
+ });
53
+ // Get the tx that created the ownercap object.
54
+ const ccipCreationTxDigest = ccipObject.data?.previousTransaction;
55
+ if (!ccipCreationTxDigest) {
56
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'Could not find previous transaction for CCIP object');
57
+ }
58
+ const ccipCreationTx = await client.getTransactionBlock({
59
+ digest: ccipCreationTxDigest,
60
+ options: {
61
+ showEffects: true,
62
+ },
63
+ });
64
+ const ccipCreatedObjects = ccipCreationTx.effects?.created?.map((obj) => obj.reference.objectId);
65
+ if (!ccipCreatedObjects || ccipCreatedObjects.length === 0) {
66
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'No created objects found in creation transaction');
67
+ }
68
+ const ccipObjectsData = await Promise.all(ccipCreatedObjects.map((objId) => client.getObject({
69
+ id: objId,
70
+ options: {
71
+ showType: true,
72
+ showContent: true,
73
+ showOwner: true,
74
+ },
75
+ })));
76
+ const ownerCapObject = ccipObjectsData.find((objData) => objData.data?.type?.includes('::ownable::OwnerCap'));
77
+ if (!ownerCapObject) {
78
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'OwnerCap object not found among created objects');
79
+ }
80
+ const ownerCapOwner = ownerCapObject.data?.owner;
81
+ if (!ownerCapOwner) {
82
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'Could not find owner of the OwnerCap object');
83
+ }
84
+ if (typeof ownerCapOwner === 'string' || !('AddressOwner' in ownerCapOwner)) {
85
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'OwnerCap object does not have an AddressOwner');
86
+ }
87
+ const ownerCapOwnerObjects = await client.getOwnedObjects({
88
+ owner: ownerCapOwner['AddressOwner'],
89
+ });
90
+ const fullObjectsInfo = await Promise.all(ownerCapOwnerObjects.data.map((obj) => client.getObject({
91
+ id: obj.data?.objectId || '',
92
+ options: {
93
+ showType: true,
94
+ },
95
+ })));
96
+ const ownerCapPackageIds = fullObjectsInfo
97
+ .filter((objData) => objData.data?.type?.includes('::ownable::OwnerCap'))
98
+ .map((obj) => obj.data?.type?.split('::')[0]);
99
+ const packagesInfo = await Promise.all(ownerCapPackageIds.map((pkgId) => client.getNormalizedMoveModulesByPackage({
100
+ package: pkgId || '',
101
+ })));
102
+ const offrampPkgs = packagesInfo
103
+ .filter((pkg) => {
104
+ return Object.values(pkg).some((module) => module.name === 'offramp');
105
+ })
106
+ .flatMap((pkg) => Object.values(pkg))
107
+ .filter((module) => module.name === 'offramp');
108
+ if (offrampPkgs.length === 0) {
109
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'Could not find OffRamp package among OwnerCap packages');
110
+ }
111
+ if (offrampPkgs.length > 1) {
112
+ throw new CCIPError(CCIPErrorCode.UNKNOWN, 'Multiple OffRamp packages found; unable to uniquely identify OffRamp package');
113
+ }
114
+ return normalizeSuiAddress(offrampPkgs[0].address);
115
+ };
116
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/sui/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { SuiClient } from '@mysten/sui/client';
2
+ import type { SuiGraphQLClient } from '@mysten/sui/graphql';
3
+ /**
4
+ * Commit event data structure from Sui blockchain.
5
+ */
6
+ export type CommitEvent = {
7
+ unblessed_merkle_roots: {
8
+ max_seq_nr: string;
9
+ merkle_root: string;
10
+ min_seq_nr: string;
11
+ on_ramp_address: string;
12
+ source_chain_selector: string;
13
+ }[];
14
+ };
15
+ type EventNode<T = unknown> = {
16
+ timestamp: string;
17
+ contents: {
18
+ json: T;
19
+ };
20
+ transaction?: {
21
+ effects: {
22
+ checkpoint: {
23
+ sequenceNumber: number;
24
+ };
25
+ };
26
+ digest: string;
27
+ };
28
+ };
29
+ /**
30
+ * Sui RPC does not support querying events by time range and event type
31
+ * Sui GraphQL does not support querying events by time range directly, but does with checkpoints
32
+ * This function combines both to get events of a specific type within a time range
33
+ */
34
+ export declare function getSuiEventsInTimeRange<T>(client: SuiClient, graphqlClient: SuiGraphQLClient, type: string, startTime: Date, endTime: Date): Promise<EventNode<T>[]>;
35
+ export {};
36
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/sui/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAI3D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,sBAAsB,EAAE;QACtB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,eAAe,EAAE,MAAM,CAAA;QACvB,qBAAqB,EAAE,MAAM,CAAA;KAC9B,EAAE,CAAA;CACJ,CAAA;AA2ID,KAAK,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAA;KACR,CAAA;IACD,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE;YACP,UAAU,EAAE;gBACV,cAAc,EAAE,MAAM,CAAA;aACvB,CAAA;SACF,CAAA;QACD,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAgID;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,gBAAgB,EAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAoBzB"}
@@ -0,0 +1,179 @@
1
+ import { CCIPDataFormatUnsupportedError } from "../errors/index.js";
2
+ async function getTransactionDigestsInTimeRange(client, startTime, endTime) {
3
+ const filter = {
4
+ TimeRange: {
5
+ startTime: startTime.getTime().toString(),
6
+ endTime: endTime.getTime().toString(),
7
+ },
8
+ };
9
+ // Get first event (ascending order)
10
+ const firstEvents = await client.queryEvents({
11
+ query: filter,
12
+ limit: 1,
13
+ order: 'ascending',
14
+ });
15
+ if (!firstEvents.data || firstEvents.data.length === 0) {
16
+ return null;
17
+ }
18
+ const firstDigest = firstEvents.data[0].id.txDigest;
19
+ // Get last event (descending order)
20
+ const lastEvents = await client.queryEvents({
21
+ query: filter,
22
+ limit: 1,
23
+ order: 'descending',
24
+ });
25
+ const lastDigest = lastEvents.data[0].id.txDigest;
26
+ return { firstDigest, lastDigest };
27
+ }
28
+ async function getCheckpointsFromTransactions(graphqlClient, firstDigest, lastDigest) {
29
+ const query = `
30
+ query GetTransactionCheckpoints($firstDigest: String!, $lastDigest: String!) {
31
+ first: transaction(digest: $firstDigest) {
32
+ digest
33
+ effects {
34
+ checkpoint {
35
+ sequenceNumber
36
+ }
37
+ }
38
+ }
39
+ last: transaction(digest: $lastDigest) {
40
+ digest
41
+ effects {
42
+ checkpoint {
43
+ sequenceNumber
44
+ }
45
+ }
46
+ }
47
+ }
48
+ `;
49
+ const result = await graphqlClient.query({
50
+ query,
51
+ variables: {
52
+ firstDigest,
53
+ lastDigest,
54
+ },
55
+ });
56
+ if (result.errors) {
57
+ throw new CCIPDataFormatUnsupportedError(`Error fetching transaction checkpoints: ${JSON.stringify(result.errors, null, 2)}`);
58
+ }
59
+ if (!result.data?.first) {
60
+ throw new CCIPDataFormatUnsupportedError('First transaction not found in GraphQL response');
61
+ }
62
+ const startCheckpoint = parseInt(result.data.first.effects.checkpoint.sequenceNumber);
63
+ // If the last transaction is not found (too recent), use current checkpoint
64
+ let endCheckpoint;
65
+ if (!result.data.last) {
66
+ const latestCheckpointQuery = `
67
+ query GetLatestCheckpoint {
68
+ checkpoints(last: 1) {
69
+ nodes {
70
+ sequenceNumber
71
+ }
72
+ }
73
+ }
74
+ `;
75
+ const latestResult = await graphqlClient.query({
76
+ query: latestCheckpointQuery,
77
+ variables: {},
78
+ });
79
+ if (!latestResult.data) {
80
+ throw new CCIPDataFormatUnsupportedError('Failed to fetch latest checkpoint');
81
+ }
82
+ endCheckpoint = parseInt(latestResult.data.checkpoints.nodes[0].sequenceNumber);
83
+ }
84
+ else {
85
+ endCheckpoint = parseInt(result.data.last.effects.checkpoint.sequenceNumber);
86
+ }
87
+ return { startCheckpoint, endCheckpoint };
88
+ }
89
+ async function fetchEventsWithCheckpointRange(graphqlClient, type, startCheckpoint, endCheckpoint) {
90
+ const allEvents = [];
91
+ let cursor = undefined;
92
+ let hasNextPage = true;
93
+ while (hasNextPage) {
94
+ const query = `
95
+ query FetchEvents($type: String!, $after: String, $afterCheckpoint: UInt53!, $beforeCheckpoint: UInt53!) {
96
+ events(
97
+ filter: {
98
+ type: $type
99
+ afterCheckpoint: $afterCheckpoint
100
+ beforeCheckpoint: $beforeCheckpoint
101
+ }
102
+ after: $after
103
+ first: 50
104
+ ) {
105
+ nodes {
106
+ sender {
107
+ address
108
+ }
109
+ timestamp
110
+ contents {
111
+ json
112
+ }
113
+ transaction {
114
+ effects {
115
+ checkpoint {
116
+ sequenceNumber
117
+ }
118
+ }
119
+ digest
120
+ }
121
+ }
122
+ pageInfo {
123
+ hasNextPage
124
+ endCursor
125
+ }
126
+ }
127
+ }
128
+ `;
129
+ const result = await graphqlClient.query({
130
+ query,
131
+ variables: {
132
+ type,
133
+ after: cursor,
134
+ afterCheckpoint: startCheckpoint,
135
+ beforeCheckpoint: endCheckpoint + 1, // beforeCheckpoint is exclusive
136
+ },
137
+ });
138
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
139
+ if (result.errors) {
140
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
141
+ throw new CCIPDataFormatUnsupportedError(`GraphQL errors: ${JSON.stringify(result.errors, null, 2)}`);
142
+ }
143
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
144
+ if (!result.data) {
145
+ throw new CCIPDataFormatUnsupportedError('No data returned from GraphQL query');
146
+ }
147
+ const { nodes, pageInfo, } = result.data.events;
148
+ for (const node of nodes) {
149
+ allEvents.push({
150
+ timestamp: node.timestamp,
151
+ contents: {
152
+ json: (node.contents?.json || node),
153
+ },
154
+ transaction: node.transaction,
155
+ });
156
+ }
157
+ hasNextPage = pageInfo.hasNextPage;
158
+ cursor = pageInfo.endCursor ?? undefined;
159
+ if (!hasNextPage) {
160
+ break;
161
+ }
162
+ }
163
+ return allEvents;
164
+ }
165
+ /**
166
+ * Sui RPC does not support querying events by time range and event type
167
+ * Sui GraphQL does not support querying events by time range directly, but does with checkpoints
168
+ * This function combines both to get events of a specific type within a time range
169
+ */
170
+ export async function getSuiEventsInTimeRange(client, graphqlClient, type, startTime, endTime) {
171
+ const digests = await getTransactionDigestsInTimeRange(client, startTime, endTime);
172
+ if (!digests) {
173
+ return [];
174
+ }
175
+ const checkpoints = await getCheckpointsFromTransactions(graphqlClient, digests.firstDigest, digests.lastDigest);
176
+ const events = await fetchEventsWithCheckpointRange(graphqlClient, type, checkpoints.startCheckpoint, checkpoints.endCheckpoint);
177
+ return events;
178
+ }
179
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sui/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/sui/hasher.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAoB,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACpE,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,OAAO,GACR,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,CAAA;CACX,GAAG,UAAU,CAAC,CAAC,CAAC,CAUhB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,EAChD,YAAY,EAAE,MAAM,GACnB,MAAM,CA2CR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,qBAAqB,MAAM,EAC3B,mBAAmB,MAAM,EACzB,QAAQ,MAAM,KACb,MAOF,CAAA"}
1
+ {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/sui/hasher.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAoB,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACpE,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,OAAO,GACR,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,CAAA;CACX,GAAG,UAAU,CAAC,CAAC,CAAC,CAUhB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,EAChD,YAAY,EAAE,MAAM,GACnB,MAAM,CA2CR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAC1B,qBAAqB,MAAM,EAC3B,mBAAmB,MAAM,EACzB,QAAQ,MAAM,KACb,MAOF,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { concat, id, keccak256, zeroPadValue } from 'ethers';
2
2
  import { encodeNumber, encodeRawBytes } from "../aptos/utils.js";
3
+ import { CCIPExtraArgsInvalidError, CCIPSuiHasherVersionUnsupportedError } from "../errors/index.js";
3
4
  import { decodeExtraArgs } from "../extra-args.js";
4
5
  import { LEAF_DOMAIN_SEPARATOR } from "../hasher/common.js";
5
6
  import { CCIPVersion } from "../types.js";
@@ -15,7 +16,7 @@ export function getSuiLeafHasher({ sourceChainSelector, destChainSelector, onRam
15
16
  metadataHash = hashSuiMetadata(sourceChainSelector, destChainSelector, onRamp);
16
17
  return ((message) => hashV16SuiMessage(message, metadataHash));
17
18
  default:
18
- throw new Error(`Unsupported hasher version for Sui: ${version}`);
19
+ throw new CCIPSuiHasherVersionUnsupportedError(version);
19
20
  }
20
21
  }
21
22
  /**
@@ -33,16 +34,16 @@ export function hashV16SuiMessage(message, metadataHash) {
33
34
  else {
34
35
  const parsedArgs = decodeExtraArgs(message.extraArgs);
35
36
  if (!parsedArgs || parsedArgs._tag !== 'SuiExtraArgsV1')
36
- throw new Error('Invalid extraArgs for Sui message, must be SUIExtraArgsV1');
37
+ throw new CCIPExtraArgsInvalidError('Sui', message.extraArgs);
37
38
  ({ tokenReceiver, gasLimit } = parsedArgs);
38
39
  }
39
40
  const innerHash = concat([
40
- encodeNumber(message.header.messageId),
41
+ encodeNumber(message.messageId),
41
42
  zeroPadValue(message.receiver, 32),
42
- encodeNumber(message.header.sequenceNumber),
43
+ encodeNumber(message.sequenceNumber),
43
44
  encodeNumber(gasLimit),
44
45
  zeroPadValue(tokenReceiver, 32),
45
- encodeNumber(message.header.nonce),
46
+ encodeNumber(message.nonce),
46
47
  ]);
47
48
  const tokenHash = concat([
48
49
  encodeNumber(message.tokenAmounts.length),
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../src/sui/hasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../src/sui/hasher.ts"],"names":[],"mappings":"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"}