@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,63 @@
1
+ import { concat, id, keccak256, zeroPadValue } from 'ethers';
2
+ import { encodeNumber, encodeRawBytes } from "../aptos/utils.js";
3
+ import { decodeExtraArgs } from "../extra-args.js";
4
+ import { LEAF_DOMAIN_SEPARATOR } from "../hasher/common.js";
5
+ import { CCIPVersion } from "../types.js";
6
+ export function getSuiLeafHasher({ sourceChainSelector, destChainSelector, onRamp, version, }) {
7
+ let metadataHash;
8
+ switch (version) {
9
+ case CCIPVersion.V1_6:
10
+ metadataHash = hashSuiMetadata(sourceChainSelector, destChainSelector, onRamp);
11
+ return ((message) => hashV16SuiMessage(message, metadataHash));
12
+ default:
13
+ throw new Error(`Unsupported hasher version for Sui: ${version}`);
14
+ }
15
+ }
16
+ export function hashV16SuiMessage(message, metadataHash) {
17
+ let tokenReceiver, gasLimit;
18
+ if ('tokenReceiver' in message) {
19
+ ;
20
+ ({ tokenReceiver, gasLimit } = message);
21
+ }
22
+ else {
23
+ const parsedArgs = decodeExtraArgs(message.extraArgs);
24
+ if (!parsedArgs || parsedArgs._tag !== 'SuiExtraArgsV1')
25
+ throw new Error('Invalid extraArgs for Sui message, must be SUIExtraArgsV1');
26
+ ({ tokenReceiver, gasLimit } = parsedArgs);
27
+ }
28
+ const innerHash = concat([
29
+ encodeNumber(message.header.messageId),
30
+ zeroPadValue(message.receiver, 32),
31
+ encodeNumber(message.header.sequenceNumber),
32
+ encodeNumber(gasLimit),
33
+ zeroPadValue(tokenReceiver, 32),
34
+ encodeNumber(message.header.nonce),
35
+ ]);
36
+ const tokenHash = concat([
37
+ encodeNumber(message.tokenAmounts.length),
38
+ ...message.tokenAmounts.map((token) => concat([
39
+ encodeRawBytes(token.sourcePoolAddress),
40
+ zeroPadValue(token.destTokenAddress, 32),
41
+ encodeNumber(token.destGasAmount),
42
+ encodeRawBytes(token.extraData),
43
+ encodeNumber(token.amount),
44
+ ])),
45
+ ]);
46
+ const outerHash = concat([
47
+ zeroPadValue(LEAF_DOMAIN_SEPARATOR, 32),
48
+ metadataHash,
49
+ keccak256(innerHash),
50
+ keccak256(message.sender),
51
+ keccak256(message.data),
52
+ keccak256(tokenHash),
53
+ ]);
54
+ return keccak256(outerHash);
55
+ }
56
+ export const hashSuiMetadata = (sourceChainSelector, destChainSelector, onRamp) => {
57
+ const versionHash = id('Any2SuiMessageHashV1');
58
+ const encodedSource = encodeNumber(sourceChainSelector);
59
+ const encodedDest = encodeNumber(destChainSelector);
60
+ const onrampHash = keccak256(onRamp);
61
+ return keccak256(concat([versionHash, encodedSource, encodedDest, onrampHash]));
62
+ };
63
+ //# sourceMappingURL=hasher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../src/sui/hasher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { type BytesLike } from 'ethers';
2
+ import { type ChainTransaction, type LogFilter, Chain, ChainFamily } from '../chain.ts';
3
+ import type { EVMExtraArgsV2, ExtraArgs, SVMExtraArgsV1 } from '../extra-args.ts';
4
+ import type { LeafHasher } from '../hasher/common.ts';
5
+ import type { AnyMessage, CCIPRequest, CommitReport, ExecutionReceipt, ExecutionReport, Lane, Log_, NetworkInfo, OffchainTokenData } from '../types.ts';
6
+ import type { CCIPMessage_V1_6_Sui } from './types.ts';
7
+ export declare class SuiChain extends Chain<typeof ChainFamily.Sui> {
8
+ static readonly family: "sui";
9
+ static readonly decimals = 8;
10
+ readonly network: NetworkInfo<typeof ChainFamily.Sui>;
11
+ constructor();
12
+ static fromUrl(_url: string): Promise<SuiChain>;
13
+ destroy(): Promise<void>;
14
+ getBlockTimestamp(_version: number | 'finalized'): Promise<number>;
15
+ getTransaction(_hash: string | number): Promise<ChainTransaction>;
16
+ getLogs(_opts: LogFilter & {
17
+ versionAsHash?: boolean;
18
+ }): AsyncGenerator<never, void, unknown>;
19
+ typeAndVersion(_address: string): Promise<[type_: string, version: string, typeAndVersion: string] | [type_: string, version: string, typeAndVersion: string, suffix: string]>;
20
+ getRouterForOnRamp(_onRamp: string, _destChainSelector: bigint): Promise<string>;
21
+ getRouterForOffRamp(_offRamp: string, _sourceChainSelector: bigint): Promise<string>;
22
+ getNativeTokenForRouter(_router: string): Promise<string>;
23
+ getOffRampsForRouter(_router: string, _sourceChainSelector: bigint): Promise<string[]>;
24
+ getOnRampForRouter(_router: string, _destChainSelector: bigint): Promise<string>;
25
+ getOnRampForOffRamp(_offRamp: string, _sourceChainSelector: bigint): Promise<string>;
26
+ getCommitStoreForOffRamp(_offRamp: string): Promise<string>;
27
+ getTokenForTokenPool(_tokenPool: string): Promise<string>;
28
+ getTokenInfo(_token: string): Promise<{
29
+ symbol: string;
30
+ decimals: number;
31
+ }>;
32
+ getTokenAdminRegistryFor(_address: string): Promise<string>;
33
+ getWalletAddress(_opts?: {
34
+ wallet?: unknown;
35
+ }): Promise<string>;
36
+ static decodeMessage(_log: Log_): CCIPMessage_V1_6_Sui | undefined;
37
+ static decodeExtraArgs(extraArgs: BytesLike): (EVMExtraArgsV2 & {
38
+ _tag: 'EVMExtraArgsV2';
39
+ }) | (SVMExtraArgsV1 & {
40
+ _tag: 'SVMExtraArgsV1';
41
+ }) | undefined;
42
+ static encodeExtraArgs(extraArgs: ExtraArgs): string;
43
+ static decodeCommits(_log: Log_, _lane?: Lane): CommitReport[] | undefined;
44
+ static decodeReceipt(_log: Log_): ExecutionReceipt | undefined;
45
+ static getAddress(bytes: BytesLike): string;
46
+ static getDestLeafHasher(_lane: Lane): LeafHasher;
47
+ getFee(_router: string, _destChainSelector: bigint, _message: AnyMessage): Promise<bigint>;
48
+ sendMessage(_router: string, _destChainSelector: bigint, _message: AnyMessage & {
49
+ fee: bigint;
50
+ }, _opts?: {
51
+ wallet?: unknown;
52
+ approveMax?: boolean;
53
+ }): Promise<ChainTransaction>;
54
+ fetchOffchainTokenData(request: CCIPRequest): Promise<OffchainTokenData[]>;
55
+ executeReport(_offRamp: string, _execReport: ExecutionReport, _opts?: {
56
+ wallet?: unknown;
57
+ gasLimit?: number;
58
+ }): Promise<ChainTransaction>;
59
+ static parse(data: unknown): (import("../extra-args.ts").EVMExtraArgsV1 & {
60
+ allowOutOfOrderExecution: boolean;
61
+ } & {
62
+ _tag: "EVMExtraArgsV2";
63
+ }) | (SVMExtraArgsV1 & {
64
+ _tag: "SVMExtraArgsV1";
65
+ }) | undefined;
66
+ getSupportedTokens(_address: string): Promise<string[]>;
67
+ getRegistryTokenConfig(_address: string, _tokenName: string): Promise<never>;
68
+ getTokenPoolConfigs(_tokenPool: string): Promise<never>;
69
+ getTokenPoolRemotes(_tokenPool: string): Promise<never>;
70
+ listFeeTokens(_router: string): Promise<never>;
71
+ }
72
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { isBytesLike } from 'ethers';
2
+ import { AptosChain } from "../aptos/index.js";
3
+ import { Chain, ChainFamily } from "../chain.js";
4
+ import { supportedChains } from "../supported-chains.js";
5
+ export class SuiChain extends Chain {
6
+ static family = ChainFamily.Sui;
7
+ static decimals = 8;
8
+ network;
9
+ constructor() {
10
+ super();
11
+ throw new Error('Not implemented');
12
+ }
13
+ static async fromUrl(_url) {
14
+ return Promise.reject(new Error('Not implemented'));
15
+ }
16
+ async destroy() {
17
+ // Nothing to cleanup for Aptos implementation
18
+ }
19
+ async getBlockTimestamp(_version) {
20
+ return Promise.reject(new Error('Not implemented'));
21
+ }
22
+ async getTransaction(_hash) {
23
+ return Promise.reject(new Error('Not implemented'));
24
+ }
25
+ // eslint-disable-next-line require-yield
26
+ async *getLogs(_opts) {
27
+ await Promise.resolve();
28
+ throw new Error('Not implemented');
29
+ }
30
+ async typeAndVersion(_address) {
31
+ return Promise.reject(new Error('Not implemented'));
32
+ }
33
+ getRouterForOnRamp(_onRamp, _destChainSelector) {
34
+ return Promise.reject(new Error('Not implemented'));
35
+ }
36
+ getRouterForOffRamp(_offRamp, _sourceChainSelector) {
37
+ return Promise.reject(new Error('Not implemented'));
38
+ }
39
+ getNativeTokenForRouter(_router) {
40
+ return Promise.reject(new Error('Not implemented'));
41
+ }
42
+ getOffRampsForRouter(_router, _sourceChainSelector) {
43
+ return Promise.reject(new Error('Not implemented'));
44
+ }
45
+ getOnRampForRouter(_router, _destChainSelector) {
46
+ return Promise.reject(new Error('Not implemented'));
47
+ }
48
+ async getOnRampForOffRamp(_offRamp, _sourceChainSelector) {
49
+ return Promise.reject(new Error('Not implemented'));
50
+ }
51
+ getCommitStoreForOffRamp(_offRamp) {
52
+ return Promise.reject(new Error('Not implemented'));
53
+ }
54
+ async getTokenForTokenPool(_tokenPool) {
55
+ return Promise.reject(new Error('Not implemented'));
56
+ }
57
+ async getTokenInfo(_token) {
58
+ return Promise.reject(new Error('Not implemented'));
59
+ }
60
+ getTokenAdminRegistryFor(_address) {
61
+ return Promise.reject(new Error('Not implemented'));
62
+ }
63
+ async getWalletAddress(_opts) {
64
+ return Promise.reject(new Error('Not implemented'));
65
+ }
66
+ // Static methods for decoding
67
+ static decodeMessage(_log) {
68
+ throw new Error('Not implemented');
69
+ }
70
+ static decodeExtraArgs(extraArgs) {
71
+ return AptosChain.decodeExtraArgs(extraArgs);
72
+ }
73
+ static encodeExtraArgs(extraArgs) {
74
+ return AptosChain.encodeExtraArgs(extraArgs);
75
+ }
76
+ static decodeCommits(_log, _lane) {
77
+ throw new Error('Not implemented');
78
+ }
79
+ static decodeReceipt(_log) {
80
+ throw new Error('Not implemented');
81
+ }
82
+ static getAddress(bytes) {
83
+ return AptosChain.getAddress(bytes);
84
+ }
85
+ static getDestLeafHasher(_lane) {
86
+ throw new Error('Not implemented');
87
+ }
88
+ async getFee(_router, _destChainSelector, _message) {
89
+ return Promise.reject(new Error('Not implemented'));
90
+ }
91
+ async sendMessage(_router, _destChainSelector, _message, _opts) {
92
+ return Promise.reject(new Error('Not implemented'));
93
+ }
94
+ fetchOffchainTokenData(request) {
95
+ if (!('receiverObjectIds' in request.message)) {
96
+ throw new Error('Invalid message, not v1.6 Sui');
97
+ }
98
+ // default offchain token data
99
+ return Promise.resolve(request.message.tokenAmounts.map(() => undefined));
100
+ }
101
+ async executeReport(_offRamp, _execReport, _opts) {
102
+ return Promise.reject(new Error('Not implemented'));
103
+ }
104
+ static parse(data) {
105
+ if (isBytesLike(data)) {
106
+ const parsedExtraArgs = this.decodeExtraArgs(data);
107
+ if (parsedExtraArgs)
108
+ return parsedExtraArgs;
109
+ }
110
+ }
111
+ async getSupportedTokens(_address) {
112
+ return Promise.reject(new Error('Not implemented'));
113
+ }
114
+ async getRegistryTokenConfig(_address, _tokenName) {
115
+ return Promise.reject(new Error('Not implemented'));
116
+ }
117
+ async getTokenPoolConfigs(_tokenPool) {
118
+ return Promise.reject(new Error('Not implemented'));
119
+ }
120
+ async getTokenPoolRemotes(_tokenPool) {
121
+ return Promise.reject(new Error('Not implemented'));
122
+ }
123
+ async listFeeTokens(_router) {
124
+ return Promise.reject(new Error('Not implemented'));
125
+ }
126
+ }
127
+ supportedChains[ChainFamily.Sui] = SuiChain;
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type SuiExtraArgsV1 } from '../extra-args.ts';
2
+ import type { CCIPMessage_V1_6 } from '../types.ts';
3
+ export type CCIPMessage_V1_6_Sui = CCIPMessage_V1_6 & SuiExtraArgsV1;
4
+ export declare const SuiExtraArgsV1Codec: import("@mysten/sui/bcs").BcsStruct<{
5
+ gasLimit: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
6
+ allowOutOfOrderExecution: import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">;
7
+ tokenReceiver: import("@mysten/sui/bcs").BcsType<number[], Iterable<number> & {
8
+ length: number;
9
+ }, string>;
10
+ receiverObjectIds: import("@mysten/sui/bcs").BcsType<number[][], Iterable<Iterable<number> & {
11
+ length: number;
12
+ }> & {
13
+ length: number;
14
+ }, string>;
15
+ }, string>;
16
+ export declare function encodeSuiExtraArgsV1(args: SuiExtraArgsV1): string;
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sui/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,kBAAkB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,cAAc,CAAA;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;UAK9B,CAAA;AAEF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,17 @@
1
+ import { bcs } from '@mysten/sui/bcs';
2
+ import { concat } from 'ethers';
3
+ import { SuiExtraArgsV1Tag } from "../extra-args.js";
4
+ import { getAddressBytes, getDataBytes } from "../utils.js";
5
+ export const SuiExtraArgsV1Codec = bcs.struct('SuiExtraArgsV1', {
6
+ gasLimit: bcs.u64(),
7
+ allowOutOfOrderExecution: bcs.bool(),
8
+ tokenReceiver: bcs.vector(bcs.u8()),
9
+ receiverObjectIds: bcs.vector(bcs.vector(bcs.u8())),
10
+ });
11
+ export function encodeSuiExtraArgsV1(args) {
12
+ const tokenReceiver = getAddressBytes(args.tokenReceiver);
13
+ const receiverObjectIds = args.receiverObjectIds.map((id) => getDataBytes(id));
14
+ const bcsData = SuiExtraArgsV1Codec.serialize({ ...args, tokenReceiver, receiverObjectIds });
15
+ return concat([SuiExtraArgsV1Tag, bcsData.toBytes()]);
16
+ }
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sui/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAuB,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC9D,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE;IACnB,wBAAwB,EAAE,GAAG,CAAC,IAAI,EAAE;IACpC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;CACpD,CAAC,CAAA;AAEF,MAAM,UAAU,oBAAoB,CAAC,IAAoB;IACvD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9E,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAC5F,OAAO,MAAM,CAAC,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AACvD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ChainFamily, ChainStatic } from './chain.ts';
2
+ export declare const supportedChains: Partial<{
3
+ [F in ChainFamily]: ChainStatic<F>;
4
+ }>;
5
+ //# sourceMappingURL=supported-chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-chains.d.ts","sourceRoot":"","sources":["../src/supported-chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG1D,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC;KAAG,CAAC,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;CAAE,CAAM,CAAA"}
@@ -0,0 +1,3 @@
1
+ // global record; can be mutated when implementing or extending a Chain family support
2
+ export const supportedChains = {};
3
+ //# sourceMappingURL=supported-chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supported-chains.js","sourceRoot":"","sources":["../src/supported-chains.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAoD,EAAE,CAAA"}
@@ -0,0 +1,118 @@
1
+ import type { AbiParametersToPrimitiveTypes, ExtractAbiEvent } from 'abitype';
2
+ import type { BytesLike, Log } from 'ethers';
3
+ import type { ChainFamily, ChainTransaction } from './chain.ts';
4
+ import type OffRamp_1_6_ABI from './evm/abi/OffRamp_1_6.ts';
5
+ import type { CCIPMessage_EVM, CCIPMessage_V1_6_EVM } from './evm/messages.ts';
6
+ import type { ExtraArgs } from './extra-args.ts';
7
+ import type { CCIPMessage_V1_6_Solana } from './solana/types.ts';
8
+ import type { CCIPMessage_V1_6_Sui } from './sui/types.ts';
9
+ export type { CCIPMessage_V1_6 } from './evm/messages.ts';
10
+ /**
11
+ * DeepReadonly is a type that recursively makes all properties of an object readonly.
12
+ */
13
+ export type DeepReadonly<T> = Readonly<{
14
+ [K in keyof T]: T[K] extends number | string | symbol ? Readonly<T[K]> : T[K] extends Array<infer A> ? Readonly<Array<DeepReadonly<A>>> : DeepReadonly<T[K]>;
15
+ }>;
16
+ /**
17
+ * "Fix" for deeply intersecting types containing arrays: A[] & B[] => (A & B)[]
18
+ * Usually, if you intersect { arr: A[] } & { arr: B[] }, arr will have type A[] & B[],
19
+ * i.e. all/each *index* of A[] and B[] should be present in the intersection, with quite undefined
20
+ * types of the elements themselves, oftentimes assigning only one of A or B to the element type;
21
+ * This converts deeply to (A & B)[], i.e. each *element* should have all properties of A & B
22
+ */
23
+ export type MergeArrayElements<T, U> = {
24
+ [K in keyof (T & U)]: K extends keyof T & keyof U ? T[K] extends unknown[] ? U[K] extends unknown[] ? (T[K][number] & U[K][number])[] : U[K] extends readonly unknown[] ? readonly (T[K][number] & U[K][number])[] : never : T[K] extends readonly unknown[] ? U[K] extends readonly unknown[] ? readonly (T[K][number] & U[K][number])[] : never : U[K] extends readonly unknown[] ? never : MergeArrayElements<T[K], U[K]> : K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;
25
+ };
26
+ export declare const CCIPVersion: {
27
+ readonly V1_2: "1.2.0";
28
+ readonly V1_5: "1.5.0";
29
+ readonly V1_6: "1.6.0";
30
+ };
31
+ export type CCIPVersion = (typeof CCIPVersion)[keyof typeof CCIPVersion];
32
+ type ChainFamilyWithId<F extends ChainFamily> = F extends typeof ChainFamily.EVM ? {
33
+ readonly family: F;
34
+ readonly chainId: number;
35
+ } : F extends typeof ChainFamily.Solana ? {
36
+ readonly family: F;
37
+ readonly chainId: string;
38
+ } : F extends typeof ChainFamily.Aptos | typeof ChainFamily.Sui ? {
39
+ readonly family: F;
40
+ readonly chainId: `${F}:${number}`;
41
+ } : never;
42
+ export type NetworkInfo<F extends ChainFamily = ChainFamily> = {
43
+ readonly chainSelector: bigint;
44
+ readonly name: string;
45
+ readonly isTestnet: boolean;
46
+ } & ChainFamilyWithId<F>;
47
+ export interface Lane<V extends CCIPVersion = CCIPVersion> {
48
+ sourceChainSelector: bigint;
49
+ destChainSelector: bigint;
50
+ onRamp: string;
51
+ version: V;
52
+ }
53
+ export type CCIPMessage<V extends CCIPVersion = CCIPVersion> = V extends typeof CCIPVersion.V1_2 | typeof CCIPVersion.V1_5 ? CCIPMessage_EVM<V> : CCIPMessage_V1_6_EVM | CCIPMessage_V1_6_Solana | CCIPMessage_V1_6_Sui;
54
+ export type Log_ = Pick<Log, 'topics' | 'index' | 'address' | 'blockNumber' | 'transactionHash'> & {
55
+ data: BytesLike | Record<string, unknown>;
56
+ tx?: ChainTransaction;
57
+ };
58
+ export interface CCIPRequest<V extends CCIPVersion = CCIPVersion> {
59
+ lane: Lane<V>;
60
+ message: CCIPMessage<V>;
61
+ log: Log_;
62
+ tx: {
63
+ logs: readonly Log_[];
64
+ from?: string;
65
+ error?: unknown;
66
+ };
67
+ timestamp: number;
68
+ }
69
+ export type CommitReport = AbiParametersToPrimitiveTypes<ExtractAbiEvent<typeof OffRamp_1_6_ABI, 'CommitReportAccepted'>['inputs']>[0][number];
70
+ export interface CCIPCommit {
71
+ report: CommitReport;
72
+ log: Log_;
73
+ }
74
+ export declare const ExecutionState: {
75
+ readonly InProgress: 1;
76
+ readonly Success: 2;
77
+ readonly Failed: 3;
78
+ };
79
+ export type ExecutionState = (typeof ExecutionState)[keyof typeof ExecutionState];
80
+ export type ExecutionReceipt = {
81
+ messageId: string;
82
+ sequenceNumber: bigint;
83
+ state: ExecutionState;
84
+ sourceChainSelector?: bigint;
85
+ messageHash?: string;
86
+ returnData?: BytesLike | Record<string, string>;
87
+ gasUsed?: bigint;
88
+ };
89
+ export interface CCIPExecution {
90
+ receipt: ExecutionReceipt;
91
+ log: Log_;
92
+ timestamp: number;
93
+ }
94
+ export type OffchainTokenData = {
95
+ _tag: string;
96
+ [k: string]: BytesLike;
97
+ } | undefined;
98
+ export type ExecutionReport<M extends CCIPMessage = CCIPMessage> = {
99
+ message: M;
100
+ proofs: readonly BytesLike[];
101
+ proofFlagBits: bigint;
102
+ merkleRoot: string;
103
+ offchainTokenData: readonly OffchainTokenData[];
104
+ };
105
+ /**
106
+ * A message to be sent to another network
107
+ */
108
+ export type AnyMessage = {
109
+ receiver: BytesLike;
110
+ data: BytesLike;
111
+ extraArgs: ExtraArgs;
112
+ tokenAmounts?: readonly {
113
+ token: string;
114
+ amount: bigint;
115
+ }[];
116
+ feeToken?: string;
117
+ };
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,11 @@
1
+ export const CCIPVersion = {
2
+ V1_2: '1.2.0',
3
+ V1_5: '1.5.0',
4
+ V1_6: '1.6.0',
5
+ };
6
+ export const ExecutionState = {
7
+ InProgress: 1,
8
+ Success: 2,
9
+ Failed: 3,
10
+ };
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsDA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;CACL,CAAA;AAoDV,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACD,CAAA"}
@@ -0,0 +1,117 @@
1
+ import { type BigNumberish, type BytesLike, type Numeric } from 'ethers';
2
+ import moize from 'moize';
3
+ import { type Chain, ChainFamily } from './chain.ts';
4
+ import type { NetworkInfo } from './types.ts';
5
+ /**
6
+ * Returns *some* block number with timestamp prior to `timestamp`
7
+ *
8
+ * @param getBlockTimestamp - function to get block timestamp
9
+ * @param recentBlockNumber - a block guaranteed to be after `timestamp` (e.g. latest)
10
+ * @param timestamp - target timestamp
11
+ * @param precision - returned blockNumber should be within this many blocks before timestamp
12
+ * @returns blockNumber of a block at provider which is close but before target timestamp
13
+ **/
14
+ export declare function getSomeBlockNumberBefore(getBlockTimestamp: (blockNumber: number) => Promise<number>, recentBlockNumber: number, timestamp: number, precision?: number): Promise<number>;
15
+ /**
16
+ * Converts a chain selector, chain ID, or chain name to complete network information
17
+ *
18
+ * @param selectorOrIdOrName - Can be:
19
+ * - Chain selector as bigint or numeric string
20
+ * - Chain ID as number, bigint or string (EVM: "1", Aptos: "aptos:1", Solana: genesisHash)
21
+ * - Chain name as string ("ethereum-mainnet")
22
+ * @returns Complete NetworkInfo object
23
+ */
24
+ export declare const networkInfo: moize.Moized<(selectorOrIdOrName: bigint | number | string) => NetworkInfo, Partial<{
25
+ isDeepEqual: boolean;
26
+ isPromise: boolean;
27
+ isReact: boolean;
28
+ isSerialized: boolean;
29
+ isShallowEqual: boolean;
30
+ matchesArg: moize.IsEqual;
31
+ matchesKey: moize.IsMatchingKey;
32
+ maxAge: number;
33
+ maxArgs: number;
34
+ maxSize: number;
35
+ onCacheAdd: moize.OnCacheOperation<(selectorOrIdOrName: bigint | number | string) => NetworkInfo>;
36
+ onCacheChange: moize.OnCacheOperation<(selectorOrIdOrName: bigint | number | string) => NetworkInfo>;
37
+ onCacheHit: moize.OnCacheOperation<(selectorOrIdOrName: bigint | number | string) => NetworkInfo>;
38
+ onExpire: moize.OnExpire;
39
+ profileName: string;
40
+ serializer: moize.Serialize;
41
+ transformArgs: moize.TransformKey;
42
+ updateCacheForKey: moize.UpdateCacheForKey;
43
+ updateExpire: boolean;
44
+ }> & Partial<{
45
+ isDeepEqual: boolean;
46
+ isPromise: boolean;
47
+ isReact: boolean;
48
+ isSerialized: boolean;
49
+ isShallowEqual: boolean;
50
+ matchesArg: moize.IsEqual;
51
+ matchesKey: moize.IsMatchingKey;
52
+ maxAge: number;
53
+ maxArgs: number;
54
+ maxSize: number;
55
+ onCacheAdd: moize.OnCacheOperation<moize.Moizeable>;
56
+ onCacheChange: moize.OnCacheOperation<moize.Moizeable>;
57
+ onCacheHit: moize.OnCacheOperation<moize.Moizeable>;
58
+ onExpire: moize.OnExpire;
59
+ profileName: string;
60
+ serializer: moize.Serialize;
61
+ transformArgs: moize.TransformKey;
62
+ updateCacheForKey: moize.UpdateCacheForKey;
63
+ updateExpire: boolean;
64
+ }>>;
65
+ /**
66
+ * Generates exclusive block ranges [fromBlock, toBlock]
67
+ * If startBlock is given, moves forward from there (up to latestBlock),
68
+ * Otherwise, moves backwards down to genesis (you probably want to break/return before that)
69
+ **/
70
+ export declare function blockRangeGenerator(params: {
71
+ page?: number;
72
+ } & ({
73
+ endBlock: number;
74
+ startBlock?: number;
75
+ } | {
76
+ singleBlock: number;
77
+ })): Generator<{
78
+ fromBlock: number;
79
+ toBlock: number;
80
+ progress?: undefined;
81
+ } | {
82
+ fromBlock: number;
83
+ toBlock: number;
84
+ progress: string;
85
+ }, void, unknown>;
86
+ export declare function bigIntReplacer(_key: string, value: unknown): unknown;
87
+ export declare function bigIntReviver(_key: string, value: unknown): unknown;
88
+ /**
89
+ * Decode address from a 32-byte hex string
90
+ **/
91
+ export declare function decodeAddress(address: BytesLike, family?: ChainFamily): string;
92
+ /**
93
+ * Version of decodeAddress which is aware of custom cross-chain OnRamp formats
94
+ **/
95
+ export declare function decodeOnRampAddress(address: BytesLike, family?: ChainFamily): string;
96
+ export declare function leToBigInt(data: BytesLike | readonly number[]): bigint;
97
+ export declare function toLeArray(value: BigNumberish, width?: Numeric): Uint8Array;
98
+ export declare function isBase64(data: unknown): data is string;
99
+ export declare function getDataBytes(data: BytesLike | readonly number[]): Uint8Array;
100
+ export declare function getAddressBytes(address: BytesLike): Uint8Array;
101
+ /**
102
+ * Converts snake_case strings to camelCase
103
+ */
104
+ export declare function snakeToCamel(str: string): string;
105
+ /**
106
+ * Recursively converts all snake_case keys in an object to camelCase
107
+ * Only converts keys that actually have snake_case format
108
+ */
109
+ export declare function convertKeysToCamelCase(obj: unknown, mapValues?: (value: unknown, key?: string) => unknown, key?: string): unknown;
110
+ export declare const sleep: (ms: number) => Promise<unknown>;
111
+ export declare function parseTypeAndVersion(typeAndVersion: string): Awaited<ReturnType<Chain['typeAndVersion']>>;
112
+ export declare function createRateLimitedFetch({ maxRequests, windowMs, maxRetries, }?: {
113
+ maxRequests?: number;
114
+ windowMs?: number;
115
+ maxRetries?: number;
116
+ }): typeof fetch;
117
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}