@chainlink/ccip-sdk 0.0.0 → 0.90.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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/aptos/exec.d.ts +18 -0
  4. package/dist/aptos/exec.d.ts.map +1 -0
  5. package/dist/aptos/exec.js +55 -0
  6. package/dist/aptos/exec.js.map +1 -0
  7. package/dist/aptos/hasher.d.ts +11 -0
  8. package/dist/aptos/hasher.d.ts.map +1 -0
  9. package/dist/aptos/hasher.js +62 -0
  10. package/dist/aptos/hasher.js.map +1 -0
  11. package/dist/aptos/index.d.ts +92 -0
  12. package/dist/aptos/index.d.ts.map +1 -0
  13. package/dist/aptos/index.js +482 -0
  14. package/dist/aptos/index.js.map +1 -0
  15. package/dist/aptos/logs.d.ts +9 -0
  16. package/dist/aptos/logs.d.ts.map +1 -0
  17. package/dist/aptos/logs.js +167 -0
  18. package/dist/aptos/logs.js.map +1 -0
  19. package/dist/aptos/send.d.ts +11 -0
  20. package/dist/aptos/send.d.ts.map +1 -0
  21. package/dist/aptos/send.js +78 -0
  22. package/dist/aptos/send.js.map +1 -0
  23. package/dist/aptos/token.d.ts +4 -0
  24. package/dist/aptos/token.d.ts.map +1 -0
  25. package/dist/aptos/token.js +134 -0
  26. package/dist/aptos/token.js.map +1 -0
  27. package/dist/aptos/types.d.ts +78 -0
  28. package/dist/aptos/types.d.ts.map +1 -0
  29. package/dist/aptos/types.js +60 -0
  30. package/dist/aptos/types.js.map +1 -0
  31. package/dist/aptos/utils.d.ts +12 -0
  32. package/dist/aptos/utils.d.ts.map +1 -0
  33. package/dist/aptos/utils.js +15 -0
  34. package/dist/aptos/utils.js.map +1 -0
  35. package/dist/chain.d.ts +344 -0
  36. package/dist/chain.d.ts.map +1 -0
  37. package/dist/chain.js +41 -0
  38. package/dist/chain.js.map +1 -0
  39. package/dist/commits.d.ts +25 -0
  40. package/dist/commits.d.ts.map +1 -0
  41. package/dist/commits.js +29 -0
  42. package/dist/commits.js.map +1 -0
  43. package/dist/evm/abi/BurnMintERC677Token.d.ts +602 -0
  44. package/dist/evm/abi/BurnMintERC677Token.d.ts.map +1 -0
  45. package/dist/evm/abi/BurnMintERC677Token.js +488 -0
  46. package/dist/evm/abi/BurnMintERC677Token.js.map +1 -0
  47. package/dist/evm/abi/CommitStore_1_2.d.ts +688 -0
  48. package/dist/evm/abi/CommitStore_1_2.d.ts.map +1 -0
  49. package/dist/evm/abi/CommitStore_1_2.js +638 -0
  50. package/dist/evm/abi/CommitStore_1_2.js.map +1 -0
  51. package/dist/evm/abi/CommitStore_1_5.d.ts +708 -0
  52. package/dist/evm/abi/CommitStore_1_5.d.ts.map +1 -0
  53. package/dist/evm/abi/CommitStore_1_5.js +675 -0
  54. package/dist/evm/abi/CommitStore_1_5.js.map +1 -0
  55. package/dist/evm/abi/FeeQuoter_1_6.d.ts +1770 -0
  56. package/dist/evm/abi/FeeQuoter_1_6.d.ts.map +1 -0
  57. package/dist/evm/abi/FeeQuoter_1_6.js +1904 -0
  58. package/dist/evm/abi/FeeQuoter_1_6.js.map +1 -0
  59. package/dist/evm/abi/LockReleaseTokenPool_1_5.d.ts +1116 -0
  60. package/dist/evm/abi/LockReleaseTokenPool_1_5.d.ts.map +1 -0
  61. package/dist/evm/abi/LockReleaseTokenPool_1_5.js +1096 -0
  62. package/dist/evm/abi/LockReleaseTokenPool_1_5.js.map +1 -0
  63. package/dist/evm/abi/LockReleaseTokenPool_1_5_1.d.ts +1306 -0
  64. package/dist/evm/abi/LockReleaseTokenPool_1_5_1.d.ts.map +1 -0
  65. package/dist/evm/abi/LockReleaseTokenPool_1_5_1.js +1278 -0
  66. package/dist/evm/abi/LockReleaseTokenPool_1_5_1.js.map +1 -0
  67. package/dist/evm/abi/LockReleaseTokenPool_1_6_1.d.ts +1290 -0
  68. package/dist/evm/abi/LockReleaseTokenPool_1_6_1.d.ts.map +1 -0
  69. package/dist/evm/abi/LockReleaseTokenPool_1_6_1.js +1288 -0
  70. package/dist/evm/abi/LockReleaseTokenPool_1_6_1.js.map +1 -0
  71. package/dist/evm/abi/OffRamp_1_2.d.ts +1217 -0
  72. package/dist/evm/abi/OffRamp_1_2.d.ts.map +1 -0
  73. package/dist/evm/abi/OffRamp_1_2.js +1204 -0
  74. package/dist/evm/abi/OffRamp_1_2.js.map +1 -0
  75. package/dist/evm/abi/OffRamp_1_5.d.ts +1271 -0
  76. package/dist/evm/abi/OffRamp_1_5.d.ts.map +1 -0
  77. package/dist/evm/abi/OffRamp_1_5.js +1273 -0
  78. package/dist/evm/abi/OffRamp_1_5.js.map +1 -0
  79. package/dist/evm/abi/OffRamp_1_6.d.ts +1472 -0
  80. package/dist/evm/abi/OffRamp_1_6.d.ts.map +1 -0
  81. package/dist/evm/abi/OffRamp_1_6.js +1529 -0
  82. package/dist/evm/abi/OffRamp_1_6.js.map +1 -0
  83. package/dist/evm/abi/OnRamp_1_2.d.ts +1391 -0
  84. package/dist/evm/abi/OnRamp_1_2.d.ts.map +1 -0
  85. package/dist/evm/abi/OnRamp_1_2.js +1343 -0
  86. package/dist/evm/abi/OnRamp_1_2.js.map +1 -0
  87. package/dist/evm/abi/OnRamp_1_5.d.ts +1443 -0
  88. package/dist/evm/abi/OnRamp_1_5.d.ts.map +1 -0
  89. package/dist/evm/abi/OnRamp_1_5.js +1427 -0
  90. package/dist/evm/abi/OnRamp_1_5.js.map +1 -0
  91. package/dist/evm/abi/OnRamp_1_6.d.ts +796 -0
  92. package/dist/evm/abi/OnRamp_1_6.d.ts.map +1 -0
  93. package/dist/evm/abi/OnRamp_1_6.js +880 -0
  94. package/dist/evm/abi/OnRamp_1_6.js.map +1 -0
  95. package/dist/evm/abi/Router.d.ts +541 -0
  96. package/dist/evm/abi/Router.d.ts.map +1 -0
  97. package/dist/evm/abi/Router.js +508 -0
  98. package/dist/evm/abi/Router.js.map +1 -0
  99. package/dist/evm/abi/TokenAdminRegistry_1_5.d.ts +373 -0
  100. package/dist/evm/abi/TokenAdminRegistry_1_5.d.ts.map +1 -0
  101. package/dist/evm/abi/TokenAdminRegistry_1_5.js +333 -0
  102. package/dist/evm/abi/TokenAdminRegistry_1_5.js.map +1 -0
  103. package/dist/evm/const.d.ts +27 -0
  104. package/dist/evm/const.d.ts.map +1 -0
  105. package/dist/evm/const.js +63 -0
  106. package/dist/evm/const.js.map +1 -0
  107. package/dist/evm/errors.d.ts +36 -0
  108. package/dist/evm/errors.d.ts.map +1 -0
  109. package/dist/evm/errors.js +192 -0
  110. package/dist/evm/errors.js.map +1 -0
  111. package/dist/evm/hasher.d.ts +5 -0
  112. package/dist/evm/hasher.d.ts.map +1 -0
  113. package/dist/evm/hasher.js +116 -0
  114. package/dist/evm/hasher.js.map +1 -0
  115. package/dist/evm/index.d.ts +121 -0
  116. package/dist/evm/index.d.ts.map +1 -0
  117. package/dist/evm/index.js +904 -0
  118. package/dist/evm/index.js.map +1 -0
  119. package/dist/evm/messages.d.ts +35 -0
  120. package/dist/evm/messages.d.ts.map +1 -0
  121. package/dist/evm/messages.js +11 -0
  122. package/dist/evm/messages.js.map +1 -0
  123. package/dist/evm/offchain.d.ts +16 -0
  124. package/dist/evm/offchain.d.ts.map +1 -0
  125. package/dist/evm/offchain.js +142 -0
  126. package/dist/evm/offchain.js.map +1 -0
  127. package/dist/execution.d.ts +80 -0
  128. package/dist/execution.d.ts.map +1 -0
  129. package/dist/execution.js +91 -0
  130. package/dist/execution.js.map +1 -0
  131. package/dist/extra-args.d.ts +45 -0
  132. package/dist/extra-args.d.ts.map +1 -0
  133. package/dist/extra-args.js +44 -0
  134. package/dist/extra-args.js.map +1 -0
  135. package/dist/gas.d.ts +27 -0
  136. package/dist/gas.d.ts.map +1 -0
  137. package/dist/gas.js +80 -0
  138. package/dist/gas.js.map +1 -0
  139. package/dist/hasher/common.d.ts +12 -0
  140. package/dist/hasher/common.d.ts.map +1 -0
  141. package/dist/hasher/common.js +19 -0
  142. package/dist/hasher/common.js.map +1 -0
  143. package/dist/hasher/hasher.d.ts +4 -0
  144. package/dist/hasher/hasher.d.ts.map +1 -0
  145. package/dist/hasher/hasher.js +11 -0
  146. package/dist/hasher/hasher.js.map +1 -0
  147. package/dist/hasher/index.d.ts +4 -0
  148. package/dist/hasher/index.d.ts.map +1 -0
  149. package/dist/hasher/index.js +4 -0
  150. package/dist/hasher/index.js.map +1 -0
  151. package/dist/hasher/merklemulti.d.ts +58 -0
  152. package/dist/hasher/merklemulti.d.ts.map +1 -0
  153. package/dist/hasher/merklemulti.js +257 -0
  154. package/dist/hasher/merklemulti.js.map +1 -0
  155. package/dist/index.d.ts +13 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +13 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/offchain.d.ts +20 -0
  160. package/dist/offchain.d.ts.map +1 -0
  161. package/dist/offchain.js +59 -0
  162. package/dist/offchain.js.map +1 -0
  163. package/dist/requests.d.ts +48 -0
  164. package/dist/requests.d.ts.map +1 -0
  165. package/dist/requests.js +286 -0
  166. package/dist/requests.js.map +1 -0
  167. package/dist/selectors.d.ts +9 -0
  168. package/dist/selectors.d.ts.map +1 -0
  169. package/dist/selectors.js +1330 -0
  170. package/dist/selectors.js.map +1 -0
  171. package/dist/solana/cleanup.d.ts +15 -0
  172. package/dist/solana/cleanup.d.ts.map +1 -0
  173. package/dist/solana/cleanup.js +159 -0
  174. package/dist/solana/cleanup.js.map +1 -0
  175. package/dist/solana/exec.d.ts +15 -0
  176. package/dist/solana/exec.d.ts.map +1 -0
  177. package/dist/solana/exec.js +417 -0
  178. package/dist/solana/exec.js.map +1 -0
  179. package/dist/solana/hasher.d.ts +4 -0
  180. package/dist/solana/hasher.d.ts.map +1 -0
  181. package/dist/solana/hasher.js +81 -0
  182. package/dist/solana/hasher.js.map +1 -0
  183. package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.d.ts +866 -0
  184. package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.d.ts.map +1 -0
  185. package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.js +866 -0
  186. package/dist/solana/idl/1.6.0/BASE_TOKEN_POOL.js.map +1 -0
  187. package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.d.ts +949 -0
  188. package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.d.ts.map +1 -0
  189. package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.js +949 -0
  190. package/dist/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.js.map +1 -0
  191. package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.d.ts +1374 -0
  192. package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.d.ts.map +1 -0
  193. package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.js +1374 -0
  194. package/dist/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.js.map +1 -0
  195. package/dist/solana/idl/1.6.0/CCIP_COMMON.d.ts +104 -0
  196. package/dist/solana/idl/1.6.0/CCIP_COMMON.d.ts.map +1 -0
  197. package/dist/solana/idl/1.6.0/CCIP_COMMON.js +104 -0
  198. package/dist/solana/idl/1.6.0/CCIP_COMMON.js.map +1 -0
  199. package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.d.ts +2746 -0
  200. package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.d.ts.map +1 -0
  201. package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.js +2746 -0
  202. package/dist/solana/idl/1.6.0/CCIP_OFFRAMP.js.map +1 -0
  203. package/dist/solana/idl/1.6.0/CCIP_ROUTER.d.ts +2332 -0
  204. package/dist/solana/idl/1.6.0/CCIP_ROUTER.d.ts.map +1 -0
  205. package/dist/solana/idl/1.6.0/CCIP_ROUTER.js +2332 -0
  206. package/dist/solana/idl/1.6.0/CCIP_ROUTER.js.map +1 -0
  207. package/dist/solana/index.d.ts +205 -0
  208. package/dist/solana/index.d.ts.map +1 -0
  209. package/dist/solana/index.js +1085 -0
  210. package/dist/solana/index.js.map +1 -0
  211. package/dist/solana/offchain.d.ts +31 -0
  212. package/dist/solana/offchain.d.ts.map +1 -0
  213. package/dist/solana/offchain.js +152 -0
  214. package/dist/solana/offchain.js.map +1 -0
  215. package/dist/solana/patchBorsh.d.ts +2 -0
  216. package/dist/solana/patchBorsh.d.ts.map +1 -0
  217. package/dist/solana/patchBorsh.js +60 -0
  218. package/dist/solana/patchBorsh.js.map +1 -0
  219. package/dist/solana/send.d.ts +14 -0
  220. package/dist/solana/send.d.ts.map +1 -0
  221. package/dist/solana/send.js +272 -0
  222. package/dist/solana/send.js.map +1 -0
  223. package/dist/solana/types.d.ts +4 -0
  224. package/dist/solana/types.d.ts.map +1 -0
  225. package/dist/solana/types.js +2 -0
  226. package/dist/solana/types.js.map +1 -0
  227. package/dist/solana/utils.d.ts +58 -0
  228. package/dist/solana/utils.d.ts.map +1 -0
  229. package/dist/solana/utils.js +211 -0
  230. package/dist/solana/utils.js.map +1 -0
  231. package/dist/sui/hasher.d.ts +12 -0
  232. package/dist/sui/hasher.d.ts.map +1 -0
  233. package/dist/sui/hasher.js +63 -0
  234. package/dist/sui/hasher.js.map +1 -0
  235. package/dist/sui/index.d.ts +72 -0
  236. package/dist/sui/index.d.ts.map +1 -0
  237. package/dist/sui/index.js +128 -0
  238. package/dist/sui/index.js.map +1 -0
  239. package/dist/sui/types.d.ts +17 -0
  240. package/dist/sui/types.d.ts.map +1 -0
  241. package/dist/sui/types.js +17 -0
  242. package/dist/sui/types.js.map +1 -0
  243. package/dist/supported-chains.d.ts +5 -0
  244. package/dist/supported-chains.d.ts.map +1 -0
  245. package/dist/supported-chains.js +3 -0
  246. package/dist/supported-chains.js.map +1 -0
  247. package/dist/types.d.ts +118 -0
  248. package/dist/types.d.ts.map +1 -0
  249. package/dist/types.js +11 -0
  250. package/dist/types.js.map +1 -0
  251. package/dist/utils.d.ts +117 -0
  252. package/dist/utils.d.ts.map +1 -0
  253. package/dist/utils.js +336 -0
  254. package/dist/utils.js.map +1 -0
  255. package/package.json +66 -8
  256. package/src/aptos/exec.ts +69 -0
  257. package/src/aptos/hasher.ts +92 -0
  258. package/src/aptos/index.ts +660 -0
  259. package/src/aptos/logs.ts +210 -0
  260. package/src/aptos/send.ts +120 -0
  261. package/src/aptos/token.ts +150 -0
  262. package/src/aptos/types.ts +85 -0
  263. package/src/aptos/utils.ts +24 -0
  264. package/src/chain.ts +398 -0
  265. package/src/commits.ts +44 -0
  266. package/src/evm/abi/BurnMintERC677Token.ts +487 -0
  267. package/src/evm/abi/CommitStore_1_2.ts +637 -0
  268. package/src/evm/abi/CommitStore_1_5.ts +674 -0
  269. package/src/evm/abi/FeeQuoter_1_6.ts +1903 -0
  270. package/src/evm/abi/LockReleaseTokenPool_1_5.ts +1095 -0
  271. package/src/evm/abi/LockReleaseTokenPool_1_5_1.ts +1277 -0
  272. package/src/evm/abi/LockReleaseTokenPool_1_6_1.ts +1287 -0
  273. package/src/evm/abi/OffRamp_1_2.ts +1203 -0
  274. package/src/evm/abi/OffRamp_1_5.ts +1272 -0
  275. package/src/evm/abi/OffRamp_1_6.ts +1528 -0
  276. package/src/evm/abi/OnRamp_1_2.ts +1342 -0
  277. package/src/evm/abi/OnRamp_1_5.ts +1426 -0
  278. package/src/evm/abi/OnRamp_1_6.ts +879 -0
  279. package/src/evm/abi/Router.ts +507 -0
  280. package/src/evm/abi/TokenAdminRegistry_1_5.ts +332 -0
  281. package/src/evm/const.ts +69 -0
  282. package/src/evm/errors.ts +212 -0
  283. package/src/evm/hasher.ts +166 -0
  284. package/src/evm/index.ts +1262 -0
  285. package/src/evm/messages.ts +73 -0
  286. package/src/evm/offchain.ts +189 -0
  287. package/src/execution.ts +131 -0
  288. package/src/extra-args.ts +71 -0
  289. package/src/gas.ts +135 -0
  290. package/src/hasher/common.ts +23 -0
  291. package/src/hasher/hasher.ts +12 -0
  292. package/src/hasher/index.ts +3 -0
  293. package/src/hasher/merklemulti.ts +309 -0
  294. package/src/index.ts +51 -0
  295. package/src/offchain.ts +86 -0
  296. package/src/requests.ts +339 -0
  297. package/src/selectors.ts +1340 -0
  298. package/src/solana/cleanup.ts +216 -0
  299. package/src/solana/exec.ts +645 -0
  300. package/src/solana/hasher.ts +104 -0
  301. package/src/solana/idl/1.6.0/BASE_TOKEN_POOL.ts +1734 -0
  302. package/src/solana/idl/1.6.0/BURN_MINT_TOKEN_POOL.ts +1900 -0
  303. package/src/solana/idl/1.6.0/CCIP_CCTP_TOKEN_POOL.ts +2750 -0
  304. package/src/solana/idl/1.6.0/CCIP_COMMON.ts +210 -0
  305. package/src/solana/idl/1.6.0/CCIP_OFFRAMP.ts +5494 -0
  306. package/src/solana/idl/1.6.0/CCIP_ROUTER.ts +4671 -0
  307. package/src/solana/index.ts +1454 -0
  308. package/src/solana/offchain.ts +209 -0
  309. package/src/solana/patchBorsh.ts +67 -0
  310. package/src/solana/send.ts +436 -0
  311. package/src/solana/types.ts +6 -0
  312. package/src/solana/utils.ts +272 -0
  313. package/src/sui/hasher.ts +90 -0
  314. package/src/sui/index.ts +198 -0
  315. package/src/sui/types.ts +22 -0
  316. package/src/supported-chains.ts +4 -0
  317. package/src/types.ts +153 -0
  318. package/src/utils.ts +405 -0
  319. package/tsconfig.json +18 -0
@@ -0,0 +1,48 @@
1
+ import { type Chain, type ChainTransaction, type LogFilter } from './chain.ts';
2
+ import type { CCIPMessage, CCIPRequest } from './types.ts';
3
+ /**
4
+ * Decodes hex strings, bytearrays, JSON strings and raw objects as CCIPMessages
5
+ * Does minimal validation, but converts objects in the format expected by ccip-tools-ts
6
+ **/
7
+ export declare function decodeMessage(data: string | Uint8Array | Record<string, unknown>): CCIPMessage;
8
+ /**
9
+ * Fetch all CCIP messages in a transaction
10
+ * @param tx - TransactionReceipt to search in
11
+ * @returns CCIP messages in the transaction (at least one)
12
+ **/
13
+ export declare function fetchCCIPRequestsInTx(tx: ChainTransaction): Promise<CCIPRequest[]>;
14
+ /**
15
+ * Fetch a CCIP message by its messageId
16
+ * Can be slow due to having to paginate backwards through logs
17
+ *
18
+ * @param source - Provider to fetch logs from
19
+ * @param messageId - messageId to search for
20
+ * @param hints - Optional hints for pagination
21
+ * @returns CCIPRequest with given messageId
22
+ **/
23
+ export declare function fetchCCIPMessageById(source: Chain, messageId: string, hints?: {
24
+ page?: number;
25
+ onRamp?: string;
26
+ }): Promise<CCIPRequest>;
27
+ export declare function fetchAllMessagesInBatch<R extends Omit<CCIPRequest, 'tx' | 'timestamp'>>(source: Chain, request: R, { minSeqNr, maxSeqNr }: {
28
+ minSeqNr: bigint;
29
+ maxSeqNr: bigint;
30
+ }, { page: eventsBatchSize }?: {
31
+ page?: number;
32
+ }): Promise<R['message'][]>;
33
+ export declare function fetchRequestsForSender(source: Chain, sender: string, filter: Pick<LogFilter, 'address' | 'startBlock' | 'startTime' | 'endBlock'>): AsyncGenerator<Omit<CCIPRequest, 'tx' | 'timestamp'>, void, unknown>;
34
+ /**
35
+ * Map source `token` to `sourcePoolAddress + destTokenAddress`
36
+ * @param source - source chain
37
+ * @param destChainSelector - dest network
38
+ * @param onRamp - contract address
39
+ * @param sourceTokenAmounts - usually `{ token, amount }`
40
+ * @returns - { sourcePoolAddress, destTokenAddress, ...rest } objects
41
+ */
42
+ export declare function sourceToDestTokenAmounts<S extends {
43
+ token: string;
44
+ }>(source: Chain, destChainSelector: bigint, onRamp: string, sourceTokenAmounts: readonly S[]): Promise<(Omit<S, 'token'> & {
45
+ sourcePoolAddress: string;
46
+ destTokenAddress: string;
47
+ })[]>;
48
+ //# sourceMappingURL=requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,gBAAgB,EACrB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAA;AAInB,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAA;AAwE7E;;;IAGI;AACJ,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAoB9F;AAED;;;;IAII;AACJ,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxF;AAED;;;;;;;;IAQI;AACJ,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,WAAW,CAAC,CAgCtB;AAMD,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,EAC3F,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,CAAC,EACV,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9D,EAAE,IAAI,EAAE,eAAuC,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAgEzB;AAED,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC,GAC3E,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CA6BtE;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACxE,MAAM,EAAE,KAAK,EACb,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,SAAS,CAAC,EAAE,GAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAAC,CAkBzF"}
@@ -0,0 +1,286 @@
1
+ import util from 'util';
2
+ import { isBytesLike, toBigInt } from 'ethers';
3
+ import yaml from 'yaml';
4
+ import { ChainFamily, } from "./chain.js";
5
+ import { decodeExtraArgs } from "./extra-args.js";
6
+ import { supportedChains } from "./supported-chains.js";
7
+ import { convertKeysToCamelCase, decodeAddress, leToBigInt, networkInfo } from "./utils.js";
8
+ function decodeJsonMessage(data) {
9
+ if (!data || typeof data != 'object')
10
+ throw new Error(`invalid msg: ${util.inspect(data)}`);
11
+ if (data.message)
12
+ data = data.message;
13
+ let data_ = data;
14
+ const sourceChainSelector = data_.header?.sourceChainSelector ??
15
+ data_.header?.source_chain_selector ??
16
+ data_.sourceChainSelector;
17
+ if (!sourceChainSelector)
18
+ throw new Error(`invalid msg: ${util.inspect(data)}`);
19
+ const sourceNetwork = networkInfo(sourceChainSelector);
20
+ if (!data_.header) {
21
+ const header = {
22
+ sourceChainSelector: data_.sourceChainSelector,
23
+ messageId: data_.messageId,
24
+ nonce: data_.nonce,
25
+ sequenceNumber: data_.sequenceNumber,
26
+ };
27
+ data_.header = header;
28
+ }
29
+ const destChainSelector = data_.header.dest_chain_selector ?? data_.header.destChainSelector;
30
+ if (destChainSelector) {
31
+ const destFamily = networkInfo(destChainSelector).family;
32
+ data_ = convertKeysToCamelCase(data_, (v, k) => typeof v === 'string' && v.match(/^\d+$/)
33
+ ? BigInt(v)
34
+ : k === 'receiver' || k === 'destTokenAddress'
35
+ ? decodeAddress(v, destFamily)
36
+ : v);
37
+ }
38
+ for (const ta of data_.tokenAmounts) {
39
+ if (ta.destGasAmount != null || ta.destExecData == null)
40
+ continue;
41
+ switch (sourceNetwork.family) {
42
+ // EVM & Solana encode destExecData as big-endian
43
+ case ChainFamily.EVM:
44
+ case ChainFamily.Solana:
45
+ ta.destGasAmount = toBigInt(ta.destExecData);
46
+ break;
47
+ // Aptos & Sui, as little-endian
48
+ default:
49
+ ta.destGasAmount = leToBigInt(ta.destExecData);
50
+ }
51
+ }
52
+ if (data_.extraArgs) {
53
+ const extraArgs = decodeExtraArgs(data_.extraArgs ?? '', sourceNetwork.family);
54
+ if (extraArgs) {
55
+ const { _tag, ...rest } = extraArgs;
56
+ Object.assign(data_, rest);
57
+ }
58
+ }
59
+ return data_;
60
+ }
61
+ /**
62
+ * Decodes hex strings, bytearrays, JSON strings and raw objects as CCIPMessages
63
+ * Does minimal validation, but converts objects in the format expected by ccip-tools-ts
64
+ **/
65
+ export function decodeMessage(data) {
66
+ if ((typeof data === 'string' && data.startsWith('{')) ||
67
+ (typeof data === 'object' && data !== null && !isBytesLike(data))) {
68
+ if (typeof data === 'string')
69
+ data = yaml.parse(data, { intAsBigInt: true });
70
+ return decodeJsonMessage(data);
71
+ }
72
+ // try bytearray decoding on each supported chain
73
+ for (const chain of Object.values(supportedChains)) {
74
+ try {
75
+ const decoded = chain.decodeMessage({ data });
76
+ if (decoded)
77
+ return decoded;
78
+ }
79
+ catch (_) {
80
+ // continue
81
+ }
82
+ }
83
+ throw new Error('Failed to decode message');
84
+ }
85
+ /**
86
+ * Fetch all CCIP messages in a transaction
87
+ * @param tx - TransactionReceipt to search in
88
+ * @returns CCIP messages in the transaction (at least one)
89
+ **/
90
+ export async function fetchCCIPRequestsInTx(tx) {
91
+ const source = tx.chain;
92
+ const txHash = tx.hash;
93
+ const timestamp = tx.timestamp;
94
+ const requests = [];
95
+ for (const log of tx.logs) {
96
+ let lane;
97
+ const message = source.constructor.decodeMessage(log);
98
+ if (!message)
99
+ continue;
100
+ if ('destChainSelector' in message.header) {
101
+ const [_, version] = await source.typeAndVersion(log.address);
102
+ lane = {
103
+ sourceChainSelector: message.header.sourceChainSelector,
104
+ destChainSelector: message.header.destChainSelector,
105
+ onRamp: log.address,
106
+ version: version,
107
+ };
108
+ }
109
+ else if (source.network.family !== ChainFamily.EVM) {
110
+ throw new Error(`Unsupported network family: ${source.network.family}`);
111
+ }
112
+ else {
113
+ lane = await source.getLaneForOnRamp(log.address);
114
+ }
115
+ requests.push({ lane, message, log, tx, timestamp });
116
+ }
117
+ if (!requests.length) {
118
+ throw new Error(`Could not find any CCIPSendRequested message in tx: ${txHash}`);
119
+ }
120
+ return requests;
121
+ }
122
+ /**
123
+ * Fetch a CCIP message by its messageId
124
+ * Can be slow due to having to paginate backwards through logs
125
+ *
126
+ * @param source - Provider to fetch logs from
127
+ * @param messageId - messageId to search for
128
+ * @param hints - Optional hints for pagination
129
+ * @returns CCIPRequest with given messageId
130
+ **/
131
+ export async function fetchCCIPMessageById(source, messageId, hints) {
132
+ for await (const log of source.getLogs({
133
+ ...hints,
134
+ ...(hints?.onRamp ? { address: hints.onRamp } : {}),
135
+ topics: ['CCIPSendRequested', 'CCIPMessageSent'],
136
+ })) {
137
+ const message = source.constructor.decodeMessage(log);
138
+ if (message?.header.messageId !== messageId)
139
+ continue;
140
+ let destChainSelector, version;
141
+ if ('destChainSelector' in message.header) {
142
+ destChainSelector = message.header.destChainSelector;
143
+ [, version] = await source.typeAndVersion(log.address);
144
+ }
145
+ else if (source.network.family !== ChainFamily.EVM) {
146
+ throw new Error(`Unsupported network family: ${source.network.family}`);
147
+ }
148
+ else {
149
+ ;
150
+ ({ destChainSelector, version } = await source.getLaneForOnRamp(log.address));
151
+ }
152
+ const tx = await source.getTransaction(log.transactionHash);
153
+ return {
154
+ lane: {
155
+ sourceChainSelector: source.network.chainSelector,
156
+ destChainSelector,
157
+ onRamp: log.address,
158
+ version: version,
159
+ },
160
+ message,
161
+ log,
162
+ tx,
163
+ timestamp: tx.timestamp,
164
+ };
165
+ }
166
+ throw new Error('Could not find a CCIPSendRequested message with messageId: ' + messageId);
167
+ }
168
+ // Number of blocks to expand the search window for logs
169
+ const BLOCK_LOG_WINDOW_SIZE = 5000;
170
+ // Helper function to find the sequence number from CCIPSendRequested event logs
171
+ export async function fetchAllMessagesInBatch(source, request, { minSeqNr, maxSeqNr }, { page: eventsBatchSize = BLOCK_LOG_WINDOW_SIZE } = {}) {
172
+ if (minSeqNr === maxSeqNr)
173
+ return [request.message];
174
+ const filter = {
175
+ page: eventsBatchSize,
176
+ topics: [request.log.topics[0]],
177
+ address: request.log.address,
178
+ };
179
+ if (request.message.header.sequenceNumber === maxSeqNr)
180
+ filter.endBlock = request.log.blockNumber;
181
+ else
182
+ // start proportionally before send request block, including case when seqNum==min => startBlock
183
+ filter.startBlock =
184
+ request.log.blockNumber -
185
+ Math.ceil((Number(request.message.header.sequenceNumber - minSeqNr) / Number(maxSeqNr - minSeqNr)) *
186
+ eventsBatchSize);
187
+ const messages = [];
188
+ if (filter.startBlock) {
189
+ // forward
190
+ let backwardsBefore, backwardsEndBlock;
191
+ for await (const log of source.getLogs(filter)) {
192
+ backwardsBefore ??= log.transactionHash;
193
+ backwardsEndBlock ??= log.blockNumber - 1;
194
+ const message = source.constructor.decodeMessage(log);
195
+ if (!message ||
196
+ ('destChainSelector' in message.header &&
197
+ message.header.destChainSelector !== request.lane.destChainSelector))
198
+ continue;
199
+ if (message.header.sequenceNumber < minSeqNr)
200
+ continue;
201
+ messages.push(message);
202
+ if (message.header.sequenceNumber >= maxSeqNr)
203
+ break;
204
+ }
205
+ if (messages.length && messages[0].header.sequenceNumber > minSeqNr) {
206
+ // still work to be done backwards
207
+ delete filter['startBlock'];
208
+ filter['endBlock'] = backwardsEndBlock;
209
+ filter['endBefore'] = backwardsBefore;
210
+ }
211
+ }
212
+ if (filter.endBlock) {
213
+ // backwards
214
+ for await (const log of source.getLogs(filter)) {
215
+ const message = source.constructor.decodeMessage(log);
216
+ if (!message ||
217
+ ('destChainSelector' in message.header &&
218
+ message.header.destChainSelector !== request.lane.destChainSelector))
219
+ continue;
220
+ messages.unshift(message);
221
+ if (message.header.sequenceNumber <= minSeqNr)
222
+ break;
223
+ }
224
+ }
225
+ if (messages.length != Number(maxSeqNr - minSeqNr) + 1) {
226
+ throw new Error(`Could not find all expected request events: from=${request.log.blockNumber}, wanted=[${Number(minSeqNr)}..${Number(maxSeqNr)}:${Number(maxSeqNr - minSeqNr) + 1}], got=[${messages.map((e) => Number(e.header.sequenceNumber)).join(',')}]`);
227
+ }
228
+ return messages;
229
+ }
230
+ export async function* fetchRequestsForSender(source, sender, filter) {
231
+ const filterWithSender = {
232
+ ...filter,
233
+ sender, // some chain families may use this to look for account lookup/narrow down the search
234
+ topics: ['CCIPSendRequested', 'CCIPMessageSent'],
235
+ };
236
+ for await (const log of source.getLogs(filterWithSender)) {
237
+ const message = source.constructor.decodeMessage(log);
238
+ if (message?.sender !== sender)
239
+ continue;
240
+ let destChainSelector, version;
241
+ if ('destChainSelector' in message.header) {
242
+ destChainSelector = message.header.destChainSelector;
243
+ [, version] = await source.typeAndVersion(log.address);
244
+ }
245
+ else if (source.network.family === ChainFamily.EVM) {
246
+ ;
247
+ ({ destChainSelector, version } = await source.getLaneForOnRamp(log.address));
248
+ }
249
+ else {
250
+ throw new Error(`Unsupported network family: ${source.network.family}`);
251
+ }
252
+ yield {
253
+ lane: {
254
+ sourceChainSelector: source.network.chainSelector,
255
+ destChainSelector,
256
+ onRamp: log.address,
257
+ version: version,
258
+ },
259
+ message,
260
+ log,
261
+ };
262
+ }
263
+ }
264
+ /**
265
+ * Map source `token` to `sourcePoolAddress + destTokenAddress`
266
+ * @param source - source chain
267
+ * @param destChainSelector - dest network
268
+ * @param onRamp - contract address
269
+ * @param sourceTokenAmounts - usually `{ token, amount }`
270
+ * @returns - { sourcePoolAddress, destTokenAddress, ...rest } objects
271
+ */
272
+ export async function sourceToDestTokenAmounts(source, destChainSelector, onRamp, sourceTokenAmounts) {
273
+ const tokenAdminRegistry = await source.getTokenAdminRegistryFor(onRamp);
274
+ return Promise.all(sourceTokenAmounts.map(async ({ token, ...rest }) => {
275
+ const { tokenPool: sourcePoolAddress } = await source.getRegistryTokenConfig(tokenAdminRegistry, token);
276
+ if (!sourcePoolAddress)
277
+ throw new Error(`Token=${token} not found in registry=${tokenAdminRegistry}`);
278
+ const remotes = await source.getTokenPoolRemotes(sourcePoolAddress, destChainSelector);
279
+ return {
280
+ ...rest,
281
+ sourcePoolAddress,
282
+ destTokenAddress: remotes[networkInfo(destChainSelector).name].remoteToken,
283
+ };
284
+ }));
285
+ }
286
+ //# sourceMappingURL=requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ChainFamily } from './chain.ts';
2
+ type Selectors = Record<string, {
3
+ readonly selector: bigint;
4
+ readonly name?: string;
5
+ family: ChainFamily;
6
+ }>;
7
+ declare const selectors: Selectors;
8
+ export default selectors;
9
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,KAAK,SAAS,GAAG,MAAM,CACrB,MAAM,EACN;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAC3E,CAAA;AAED,QAAA,MAAM,SAAS,EAAE,SAkzChB,CAAA;AAED,eAAe,SAAS,CAAA"}