zerc20-client-sdk 0.1.15 → 0.2.1

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 (312) hide show
  1. package/README.md +275 -25
  2. package/dist/chain/__tests__/metadata.test.d.ts +2 -0
  3. package/dist/chain/__tests__/metadata.test.d.ts.map +1 -0
  4. package/dist/chain/__tests__/metadata.test.js +162 -0
  5. package/dist/chain/__tests__/metadata.test.js.map +1 -0
  6. package/dist/chain/index.d.ts +3 -0
  7. package/dist/chain/index.d.ts.map +1 -0
  8. package/dist/chain/index.js +2 -0
  9. package/dist/chain/index.js.map +1 -0
  10. package/dist/chain/metadata.d.ts +38 -0
  11. package/dist/chain/metadata.d.ts.map +1 -0
  12. package/dist/chain/metadata.js +158 -0
  13. package/dist/chain/metadata.js.map +1 -0
  14. package/dist/chain/types.d.ts +18 -0
  15. package/dist/chain/types.d.ts.map +1 -0
  16. package/dist/chain/types.js +2 -0
  17. package/dist/chain/types.js.map +1 -0
  18. package/dist/constants.d.ts +3 -3
  19. package/dist/constants.js +3 -3
  20. package/dist/ic/__tests__/connections.test.js +16 -152
  21. package/dist/ic/__tests__/connections.test.js.map +1 -1
  22. package/dist/ic/__tests__/recipient.test.d.ts +2 -0
  23. package/dist/ic/__tests__/recipient.test.d.ts.map +1 -0
  24. package/dist/ic/__tests__/recipient.test.js +47 -0
  25. package/dist/ic/__tests__/recipient.test.js.map +1 -0
  26. package/dist/ic/authorization.js +2 -2
  27. package/dist/ic/authorization.js.map +1 -1
  28. package/dist/ic/connections.d.ts +0 -50
  29. package/dist/ic/connections.d.ts.map +1 -1
  30. package/dist/ic/connections.js +0 -127
  31. package/dist/ic/connections.js.map +1 -1
  32. package/dist/ic/index.d.ts +4 -8
  33. package/dist/ic/index.d.ts.map +1 -1
  34. package/dist/ic/index.js +3 -8
  35. package/dist/ic/index.js.map +1 -1
  36. package/dist/ic/recipient.d.ts +10 -0
  37. package/dist/ic/recipient.d.ts.map +1 -1
  38. package/dist/ic/recipient.js +21 -1
  39. package/dist/ic/recipient.js.map +1 -1
  40. package/dist/index.d.ts +14 -5
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +8 -5
  43. package/dist/index.js.map +1 -1
  44. package/dist/onchain/__tests__/contracts.test.js +2 -32
  45. package/dist/onchain/__tests__/contracts.test.js.map +1 -1
  46. package/dist/onchain/__tests__/decode.test.d.ts +2 -0
  47. package/dist/onchain/__tests__/decode.test.d.ts.map +1 -0
  48. package/dist/onchain/__tests__/decode.test.js +155 -0
  49. package/dist/onchain/__tests__/decode.test.js.map +1 -0
  50. package/dist/onchain/__tests__/tokenReads.test.d.ts +2 -0
  51. package/dist/onchain/__tests__/tokenReads.test.d.ts.map +1 -0
  52. package/dist/onchain/__tests__/tokenReads.test.js +60 -0
  53. package/dist/onchain/__tests__/tokenReads.test.js.map +1 -0
  54. package/dist/onchain/contracts.d.ts +3 -29734
  55. package/dist/onchain/contracts.d.ts.map +1 -1
  56. package/dist/onchain/contracts.js +3 -59
  57. package/dist/onchain/contracts.js.map +1 -1
  58. package/dist/onchain/decode.d.ts +39 -0
  59. package/dist/onchain/decode.d.ts.map +1 -0
  60. package/dist/onchain/decode.js +100 -0
  61. package/dist/onchain/decode.js.map +1 -0
  62. package/dist/onchain/tokenReads.d.ts +30 -0
  63. package/dist/onchain/tokenReads.d.ts.map +1 -0
  64. package/dist/onchain/tokenReads.js +51 -0
  65. package/dist/onchain/tokenReads.js.map +1 -0
  66. package/dist/operations/__tests__/invoice.test.js +52 -1
  67. package/dist/operations/__tests__/invoice.test.js.map +1 -1
  68. package/dist/operations/__tests__/privateSendTransfer.test.d.ts +2 -0
  69. package/dist/operations/__tests__/privateSendTransfer.test.d.ts.map +1 -0
  70. package/dist/operations/__tests__/privateSendTransfer.test.js +60 -0
  71. package/dist/operations/__tests__/privateSendTransfer.test.js.map +1 -0
  72. package/dist/operations/__tests__/reexports.test.js +1 -1
  73. package/dist/operations/__tests__/reexports.test.js.map +1 -1
  74. package/dist/operations/__tests__/teleportProof.test.js +35 -75
  75. package/dist/operations/__tests__/teleportProof.test.js.map +1 -1
  76. package/dist/operations/invoice.d.ts +14 -0
  77. package/dist/operations/invoice.d.ts.map +1 -1
  78. package/dist/operations/invoice.js +22 -0
  79. package/dist/operations/invoice.js.map +1 -1
  80. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.d.ts +2 -0
  81. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.d.ts.map +1 -0
  82. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.js +57 -0
  83. package/dist/operations/layerzeroScan/__tests__/codec.decode.test.js.map +1 -0
  84. package/dist/operations/layerzeroScan/__tests__/codec.test.d.ts +2 -0
  85. package/dist/operations/layerzeroScan/__tests__/codec.test.d.ts.map +1 -0
  86. package/dist/operations/layerzeroScan/__tests__/codec.test.js +120 -0
  87. package/dist/operations/layerzeroScan/__tests__/codec.test.js.map +1 -0
  88. package/dist/operations/layerzeroScan/__tests__/formatters.test.d.ts +2 -0
  89. package/dist/operations/layerzeroScan/__tests__/formatters.test.d.ts.map +1 -0
  90. package/dist/operations/layerzeroScan/__tests__/formatters.test.js +164 -0
  91. package/dist/operations/layerzeroScan/__tests__/formatters.test.js.map +1 -0
  92. package/dist/operations/layerzeroScan/__tests__/integration.test.d.ts +2 -0
  93. package/dist/operations/layerzeroScan/__tests__/integration.test.d.ts.map +1 -0
  94. package/dist/operations/layerzeroScan/__tests__/integration.test.js +164 -0
  95. package/dist/operations/layerzeroScan/__tests__/integration.test.js.map +1 -0
  96. package/dist/operations/layerzeroScan/__tests__/scan.test.d.ts +2 -0
  97. package/dist/operations/layerzeroScan/__tests__/scan.test.d.ts.map +1 -0
  98. package/dist/operations/layerzeroScan/__tests__/scan.test.js +103 -0
  99. package/dist/operations/layerzeroScan/__tests__/scan.test.js.map +1 -0
  100. package/dist/operations/layerzeroScan/__tests__/status.test.d.ts +2 -0
  101. package/dist/operations/layerzeroScan/__tests__/status.test.d.ts.map +1 -0
  102. package/dist/operations/layerzeroScan/__tests__/status.test.js +153 -0
  103. package/dist/operations/layerzeroScan/__tests__/status.test.js.map +1 -0
  104. package/dist/operations/layerzeroScan/codec.d.ts +34 -0
  105. package/dist/operations/layerzeroScan/codec.d.ts.map +1 -0
  106. package/dist/operations/layerzeroScan/codec.js +79 -0
  107. package/dist/operations/layerzeroScan/codec.js.map +1 -0
  108. package/dist/operations/layerzeroScan/formatters.d.ts +26 -0
  109. package/dist/operations/layerzeroScan/formatters.d.ts.map +1 -0
  110. package/dist/operations/layerzeroScan/formatters.js +75 -0
  111. package/dist/operations/layerzeroScan/formatters.js.map +1 -0
  112. package/dist/operations/layerzeroScan/index.d.ts +9 -0
  113. package/dist/operations/layerzeroScan/index.d.ts.map +1 -0
  114. package/dist/operations/layerzeroScan/index.js +12 -0
  115. package/dist/operations/layerzeroScan/index.js.map +1 -0
  116. package/dist/operations/layerzeroScan/scan.d.ts +21 -0
  117. package/dist/operations/layerzeroScan/scan.d.ts.map +1 -0
  118. package/dist/operations/layerzeroScan/scan.js +70 -0
  119. package/dist/operations/layerzeroScan/scan.js.map +1 -0
  120. package/dist/operations/layerzeroScan/status.d.ts +17 -0
  121. package/dist/operations/layerzeroScan/status.d.ts.map +1 -0
  122. package/dist/operations/layerzeroScan/status.js +178 -0
  123. package/dist/operations/layerzeroScan/status.js.map +1 -0
  124. package/dist/operations/layerzeroScan/types.d.ts +181 -0
  125. package/dist/operations/layerzeroScan/types.d.ts.map +1 -0
  126. package/dist/operations/layerzeroScan/types.js +5 -0
  127. package/dist/operations/layerzeroScan/types.js.map +1 -0
  128. package/dist/operations/layerzeroScan.d.ts +5 -0
  129. package/dist/operations/layerzeroScan.d.ts.map +1 -0
  130. package/dist/operations/layerzeroScan.js +5 -0
  131. package/dist/operations/layerzeroScan.js.map +1 -0
  132. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts +2 -0
  133. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.d.ts.map +1 -0
  134. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js +157 -0
  135. package/dist/operations/liquidityManager/__tests__/adaptorWithdraw.test.js.map +1 -0
  136. package/dist/operations/liquidityManager/__tests__/balance.test.js +24 -37
  137. package/dist/operations/liquidityManager/__tests__/balance.test.js.map +1 -1
  138. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js +51 -31
  139. package/dist/operations/liquidityManager/__tests__/crossUnwrap.test.js.map +1 -1
  140. package/dist/operations/liquidityManager/__tests__/helpers.test.js +11 -8
  141. package/dist/operations/liquidityManager/__tests__/helpers.test.js.map +1 -1
  142. package/dist/operations/liquidityManager/__tests__/unwrap.test.js +68 -82
  143. package/dist/operations/liquidityManager/__tests__/unwrap.test.js.map +1 -1
  144. package/dist/operations/liquidityManager/__tests__/wrap.test.js +55 -64
  145. package/dist/operations/liquidityManager/__tests__/wrap.test.js.map +1 -1
  146. package/dist/operations/liquidityManager/abi.d.ts +57 -0
  147. package/dist/operations/liquidityManager/abi.d.ts.map +1 -0
  148. package/dist/operations/liquidityManager/abi.js +41 -0
  149. package/dist/operations/liquidityManager/abi.js.map +1 -0
  150. package/dist/operations/liquidityManager/adaptorWithdraw.d.ts +82 -0
  151. package/dist/operations/liquidityManager/adaptorWithdraw.d.ts.map +1 -0
  152. package/dist/operations/liquidityManager/adaptorWithdraw.js +107 -0
  153. package/dist/operations/liquidityManager/adaptorWithdraw.js.map +1 -0
  154. package/dist/operations/liquidityManager/balance.d.ts +3 -3
  155. package/dist/operations/liquidityManager/balance.d.ts.map +1 -1
  156. package/dist/operations/liquidityManager/balance.js +22 -15
  157. package/dist/operations/liquidityManager/balance.js.map +1 -1
  158. package/dist/operations/liquidityManager/crossUnwrap.d.ts +13 -11
  159. package/dist/operations/liquidityManager/crossUnwrap.d.ts.map +1 -1
  160. package/dist/operations/liquidityManager/crossUnwrap.js +44 -20
  161. package/dist/operations/liquidityManager/crossUnwrap.js.map +1 -1
  162. package/dist/operations/liquidityManager/helpers.d.ts +10 -15474
  163. package/dist/operations/liquidityManager/helpers.d.ts.map +1 -1
  164. package/dist/operations/liquidityManager/helpers.js +28 -18
  165. package/dist/operations/liquidityManager/helpers.js.map +1 -1
  166. package/dist/operations/liquidityManager/index.d.ts +3 -0
  167. package/dist/operations/liquidityManager/index.d.ts.map +1 -1
  168. package/dist/operations/liquidityManager/index.js +3 -0
  169. package/dist/operations/liquidityManager/index.js.map +1 -1
  170. package/dist/operations/liquidityManager/types.d.ts +1 -1
  171. package/dist/operations/liquidityManager/types.d.ts.map +1 -1
  172. package/dist/operations/liquidityManager/unwrap.d.ts +9 -9
  173. package/dist/operations/liquidityManager/unwrap.d.ts.map +1 -1
  174. package/dist/operations/liquidityManager/unwrap.js +48 -24
  175. package/dist/operations/liquidityManager/unwrap.js.map +1 -1
  176. package/dist/operations/liquidityManager/wrap.d.ts +7 -7
  177. package/dist/operations/liquidityManager/wrap.d.ts.map +1 -1
  178. package/dist/operations/liquidityManager/wrap.js +35 -16
  179. package/dist/operations/liquidityManager/wrap.js.map +1 -1
  180. package/dist/operations/privateSend.d.ts +33 -0
  181. package/dist/operations/privateSend.d.ts.map +1 -1
  182. package/dist/operations/privateSend.js +26 -0
  183. package/dist/operations/privateSend.js.map +1 -1
  184. package/dist/operations/receive/__tests__/announcementStatus.test.js +34 -11
  185. package/dist/operations/receive/__tests__/announcementStatus.test.js.map +1 -1
  186. package/dist/operations/receive/__tests__/cache.test.js +55 -161
  187. package/dist/operations/receive/__tests__/cache.test.js.map +1 -1
  188. package/dist/operations/receive/__tests__/createVerifierReader.test.d.ts +2 -0
  189. package/dist/operations/receive/__tests__/createVerifierReader.test.d.ts.map +1 -0
  190. package/dist/operations/receive/__tests__/createVerifierReader.test.js +28 -0
  191. package/dist/operations/receive/__tests__/createVerifierReader.test.js.map +1 -0
  192. package/dist/operations/receive/__tests__/helpers.test.js +9 -9
  193. package/dist/operations/receive/__tests__/helpers.test.js.map +1 -1
  194. package/dist/operations/receive/__tests__/redeemTransaction.test.d.ts +2 -0
  195. package/dist/operations/receive/__tests__/redeemTransaction.test.d.ts.map +1 -0
  196. package/dist/operations/receive/__tests__/redeemTransaction.test.js +258 -0
  197. package/dist/operations/receive/__tests__/redeemTransaction.test.js.map +1 -0
  198. package/dist/operations/receive/__tests__/submitRedeem.test.d.ts +2 -0
  199. package/dist/operations/receive/__tests__/submitRedeem.test.d.ts.map +1 -0
  200. package/dist/operations/receive/__tests__/submitRedeem.test.js +58 -0
  201. package/dist/operations/receive/__tests__/submitRedeem.test.js.map +1 -0
  202. package/dist/operations/receive/announcementStatus.d.ts +1 -1
  203. package/dist/operations/receive/announcementStatus.d.ts.map +1 -1
  204. package/dist/operations/receive/announcementStatus.js +7 -5
  205. package/dist/operations/receive/announcementStatus.js.map +1 -1
  206. package/dist/operations/receive/cache.d.ts +1 -19
  207. package/dist/operations/receive/cache.d.ts.map +1 -1
  208. package/dist/operations/receive/cache.js +6 -35
  209. package/dist/operations/receive/cache.js.map +1 -1
  210. package/dist/operations/receive/helpers.d.ts +14 -3
  211. package/dist/operations/receive/helpers.d.ts.map +1 -1
  212. package/dist/operations/receive/helpers.js +33 -3
  213. package/dist/operations/receive/helpers.js.map +1 -1
  214. package/dist/operations/receive/index.d.ts +6 -2
  215. package/dist/operations/receive/index.d.ts.map +1 -1
  216. package/dist/operations/receive/index.js +6 -1
  217. package/dist/operations/receive/index.js.map +1 -1
  218. package/dist/operations/receive/redeemTransaction.d.ts +30 -0
  219. package/dist/operations/receive/redeemTransaction.d.ts.map +1 -0
  220. package/dist/operations/receive/redeemTransaction.js +104 -0
  221. package/dist/operations/receive/redeemTransaction.js.map +1 -0
  222. package/dist/operations/receive/submitRedeem.d.ts +32 -0
  223. package/dist/operations/receive/submitRedeem.d.ts.map +1 -0
  224. package/dist/operations/receive/submitRedeem.js +27 -0
  225. package/dist/operations/receive/submitRedeem.js.map +1 -0
  226. package/dist/operations/receive/types.d.ts +53 -5
  227. package/dist/operations/receive/types.d.ts.map +1 -1
  228. package/dist/operations/teleportProof.d.ts +10 -31
  229. package/dist/operations/teleportProof.d.ts.map +1 -1
  230. package/dist/operations/teleportProof.js +14 -26
  231. package/dist/operations/teleportProof.js.map +1 -1
  232. package/dist/registry/__tests__/helpers.test.js +2 -44
  233. package/dist/registry/__tests__/helpers.test.js.map +1 -1
  234. package/dist/registry/__tests__/loader.test.js +17 -191
  235. package/dist/registry/__tests__/loader.test.js.map +1 -1
  236. package/dist/registry/__tests__/normalize.test.js +109 -1
  237. package/dist/registry/__tests__/normalize.test.js.map +1 -1
  238. package/dist/registry/helpers.d.ts +0 -7
  239. package/dist/registry/helpers.d.ts.map +1 -1
  240. package/dist/registry/helpers.js +0 -14
  241. package/dist/registry/helpers.js.map +1 -1
  242. package/dist/registry/index.d.ts +5 -5
  243. package/dist/registry/index.d.ts.map +1 -1
  244. package/dist/registry/index.js +4 -4
  245. package/dist/registry/index.js.map +1 -1
  246. package/dist/registry/loader.d.ts +0 -25
  247. package/dist/registry/loader.d.ts.map +1 -1
  248. package/dist/registry/loader.js +0 -68
  249. package/dist/registry/loader.js.map +1 -1
  250. package/dist/registry/normalize.d.ts +13 -1
  251. package/dist/registry/normalize.d.ts.map +1 -1
  252. package/dist/registry/normalize.js +43 -0
  253. package/dist/registry/normalize.js.map +1 -1
  254. package/dist/registry/types.d.ts +13 -2
  255. package/dist/registry/types.d.ts.map +1 -1
  256. package/dist/types/__tests__/evm.test.d.ts +2 -0
  257. package/dist/types/__tests__/evm.test.d.ts.map +1 -0
  258. package/dist/types/__tests__/evm.test.js +15 -0
  259. package/dist/types/__tests__/evm.test.js.map +1 -0
  260. package/dist/types/evm.d.ts +95 -0
  261. package/dist/types/evm.d.ts.map +1 -0
  262. package/dist/types/evm.js +11 -0
  263. package/dist/types/evm.js.map +1 -0
  264. package/dist/types.d.ts +15 -13
  265. package/dist/types.d.ts.map +1 -1
  266. package/dist/utils/__tests__/fees.test.js +66 -29
  267. package/dist/utils/__tests__/fees.test.js.map +1 -1
  268. package/dist/utils/__tests__/hex.test.js +64 -1
  269. package/dist/utils/__tests__/hex.test.js.map +1 -1
  270. package/dist/utils/__tests__/http.test.js +2 -64
  271. package/dist/utils/__tests__/http.test.js.map +1 -1
  272. package/dist/utils/fees.d.ts +7 -2
  273. package/dist/utils/fees.d.ts.map +1 -1
  274. package/dist/utils/fees.js +32 -16
  275. package/dist/utils/fees.js.map +1 -1
  276. package/dist/utils/hex.d.ts +11 -0
  277. package/dist/utils/hex.d.ts.map +1 -1
  278. package/dist/utils/hex.js +16 -1
  279. package/dist/utils/hex.js.map +1 -1
  280. package/dist/utils/http.d.ts +0 -27
  281. package/dist/utils/http.d.ts.map +1 -1
  282. package/dist/utils/http.js +0 -36
  283. package/dist/utils/http.js.map +1 -1
  284. package/dist/wasm/__tests__/functions.test.js +56 -1
  285. package/dist/wasm/__tests__/functions.test.js.map +1 -1
  286. package/dist/wasm/functions.d.ts +6 -0
  287. package/dist/wasm/functions.d.ts.map +1 -1
  288. package/dist/wasm/functions.js +17 -0
  289. package/dist/wasm/functions.js.map +1 -1
  290. package/dist/wasm/index.d.ts +1 -1
  291. package/dist/wasm/index.d.ts.map +1 -1
  292. package/dist/wasm/index.js +1 -1
  293. package/dist/wasm/index.js.map +1 -1
  294. package/dist/zkp/__tests__/proofService.test.js +34 -52
  295. package/dist/zkp/__tests__/proofService.test.js.map +1 -1
  296. package/dist/zkp/__tests__/workerClient.test.js +1 -40
  297. package/dist/zkp/__tests__/workerClient.test.js.map +1 -1
  298. package/dist/zkp/index.d.ts +1 -1
  299. package/dist/zkp/index.d.ts.map +1 -1
  300. package/dist/zkp/index.js +1 -1
  301. package/dist/zkp/index.js.map +1 -1
  302. package/dist/zkp/proofService.d.ts +6 -2
  303. package/dist/zkp/proofService.d.ts.map +1 -1
  304. package/dist/zkp/proofService.js +12 -15
  305. package/dist/zkp/proofService.js.map +1 -1
  306. package/dist/zkp/worker.js +13 -137
  307. package/dist/zkp/worker.js.map +1 -1
  308. package/dist/zkp/workerClient.d.ts +0 -24
  309. package/dist/zkp/workerClient.d.ts.map +1 -1
  310. package/dist/zkp/workerClient.js +0 -36
  311. package/dist/zkp/workerClient.js.map +1 -1
  312. package/package.json +3 -4
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Minimal ERC-20 ABI subset used by liquidity manager operations.
3
+ * @internal
4
+ */
5
+ export const ERC20_ABI = [
6
+ {
7
+ name: "balanceOf",
8
+ type: "function",
9
+ stateMutability: "view",
10
+ inputs: [{ name: "account", type: "address" }],
11
+ outputs: [{ name: "", type: "uint256" }],
12
+ },
13
+ {
14
+ name: "decimals",
15
+ type: "function",
16
+ stateMutability: "view",
17
+ inputs: [],
18
+ outputs: [{ name: "", type: "uint8" }],
19
+ },
20
+ {
21
+ name: "allowance",
22
+ type: "function",
23
+ stateMutability: "view",
24
+ inputs: [
25
+ { name: "owner", type: "address" },
26
+ { name: "spender", type: "address" },
27
+ ],
28
+ outputs: [{ name: "", type: "uint256" }],
29
+ },
30
+ {
31
+ name: "approve",
32
+ type: "function",
33
+ stateMutability: "nonpayable",
34
+ inputs: [
35
+ { name: "spender", type: "address" },
36
+ { name: "amount", type: "uint256" },
37
+ ],
38
+ outputs: [{ name: "", type: "bool" }],
39
+ },
40
+ ];
41
+ //# sourceMappingURL=abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KACvC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACtC;CACO,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Adaptor withdraw operations for rescuing stuck funds from failed cross-chain unwraps.
3
+ */
4
+ import type { EvmReadProvider, EvmWriteProvider } from "../../types/evm.js";
5
+ import { type FeeOverrides } from "../../utils/fees.js";
6
+ /**
7
+ * Balances stuck in an adaptor contract for a given user.
8
+ */
9
+ export interface AdaptorBalances {
10
+ /** Underlying token balance stuck in the adaptor. */
11
+ underlyingTokenBalance: bigint;
12
+ /** zERC20 token balance stuck in the adaptor. */
13
+ zerc20Balance: bigint;
14
+ /** Native token balance stuck in the adaptor. */
15
+ nativeBalance: bigint;
16
+ /** Underlying token address as configured in the adaptor. */
17
+ underlyingTokenAddress: `0x${string}`;
18
+ /** zERC20 token address as configured in the adaptor. */
19
+ zerc20TokenAddress: `0x${string}`;
20
+ }
21
+ /**
22
+ * Parameters for `withdrawFromAdaptor`.
23
+ */
24
+ export interface AdaptorWithdrawParams {
25
+ /** Write provider used to sign and submit transactions. */
26
+ writeProvider: EvmWriteProvider;
27
+ /** Optional read provider for receipt polling. */
28
+ readProvider?: EvmReadProvider;
29
+ /** Adaptor contract address. */
30
+ adaptorAddress: string;
31
+ /** Token address to withdraw (underlying, zERC20, or native sentinel). */
32
+ token: string;
33
+ /** Amount to withdraw (bigint-like). */
34
+ amount: bigint | number | string;
35
+ /** Optional fee overrides (e.g., gas, maxFeePerGas). */
36
+ feeOverrides?: FeeOverrides;
37
+ }
38
+ /**
39
+ * Fetch balances stuck in an adaptor contract for a given user.
40
+ *
41
+ * @remarks
42
+ * When a cross-chain unwrap fails (e.g. due to Stargate liquidity shortage),
43
+ * user funds remain in the adaptor contract. This function reads those balances
44
+ * so the UI can prompt the user to withdraw.
45
+ *
46
+ * @param params.provider - Provider to use for contract reads.
47
+ * @param params.account - User address to check balances for.
48
+ * @param params.adaptorAddress - Adaptor contract address.
49
+ */
50
+ export declare function fetchAdaptorBalances(params: {
51
+ provider: EvmReadProvider;
52
+ account: string;
53
+ adaptorAddress: string;
54
+ }): Promise<AdaptorBalances>;
55
+ /**
56
+ * Check whether any funds are stuck in the adaptor for a given user.
57
+ *
58
+ * @remarks Convenience wrapper around `fetchAdaptorBalances` that returns `true`
59
+ * if any balance (underlying, zERC20, or native) is greater than zero.
60
+ */
61
+ export declare function hasStuckFunds(params: {
62
+ provider: EvmReadProvider;
63
+ account: string;
64
+ adaptorAddress: string;
65
+ }): Promise<boolean>;
66
+ /**
67
+ * Withdraw stuck funds from an adaptor contract.
68
+ *
69
+ * @remarks
70
+ * Calls the adaptor's `withdraw(token, amount)` function. The token parameter
71
+ * should be one of:
72
+ * - The underlying token address (for funds that were unwrapped but failed to bridge)
73
+ * - The zERC20 token address (for funds that failed before unwrap)
74
+ * - The native token sentinel `0xEeee...` (for stuck native token)
75
+ *
76
+ * @throws If `amount` is not positive.
77
+ * @returns Transaction hash for the withdraw.
78
+ */
79
+ export declare function withdrawFromAdaptor(params: AdaptorWithdrawParams): Promise<{
80
+ transactionHash: string;
81
+ }>;
82
+ //# sourceMappingURL=adaptorWithdraw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptorWithdraw.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/adaptorWithdraw.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAO,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAW5E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;IACtC,yDAAyD;IACzD,kBAAkB,EAAE,KAAK,MAAM,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,aAAa,EAAE,gBAAgB,CAAC;IAChC,kDAAkD;IAClD,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiD3B;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBtC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Adaptor withdraw operations for rescuing stuck funds from failed cross-chain unwraps.
3
+ */
4
+ import AdaptorArtifact from "../../assets/abi/Adaptor.json" with { type: "json" };
5
+ import { spreadFeeOverrides } from "../../utils/fees.js";
6
+ import { ensureAccount, ensureBigintLike, normalizeAddress, receiptProvider, } from "./helpers.js";
7
+ /**
8
+ * Fetch balances stuck in an adaptor contract for a given user.
9
+ *
10
+ * @remarks
11
+ * When a cross-chain unwrap fails (e.g. due to Stargate liquidity shortage),
12
+ * user funds remain in the adaptor contract. This function reads those balances
13
+ * so the UI can prompt the user to withdraw.
14
+ *
15
+ * @param params.provider - Provider to use for contract reads.
16
+ * @param params.account - User address to check balances for.
17
+ * @param params.adaptorAddress - Adaptor contract address.
18
+ */
19
+ export async function fetchAdaptorBalances(params) {
20
+ const { provider, account, adaptorAddress } = params;
21
+ const normalizedAccount = normalizeAddress(account);
22
+ const normalizedAdaptor = normalizeAddress(adaptorAddress);
23
+ const [underlyingTokenBalance, zerc20Balance, nativeBalance, underlyingTokenAddress, zerc20TokenAddress,] = await Promise.all([
24
+ provider.readContract({
25
+ address: normalizedAdaptor,
26
+ abi: AdaptorArtifact.abi,
27
+ functionName: "underlyingTokenBalances",
28
+ args: [normalizedAccount],
29
+ }),
30
+ provider.readContract({
31
+ address: normalizedAdaptor,
32
+ abi: AdaptorArtifact.abi,
33
+ functionName: "zerc20Balances",
34
+ args: [normalizedAccount],
35
+ }),
36
+ provider.readContract({
37
+ address: normalizedAdaptor,
38
+ abi: AdaptorArtifact.abi,
39
+ functionName: "nativeBalances",
40
+ args: [normalizedAccount],
41
+ }),
42
+ provider.readContract({
43
+ address: normalizedAdaptor,
44
+ abi: AdaptorArtifact.abi,
45
+ functionName: "UNDERLYING_TOKEN",
46
+ }),
47
+ provider.readContract({
48
+ address: normalizedAdaptor,
49
+ abi: AdaptorArtifact.abi,
50
+ functionName: "ZERC20_TOKEN",
51
+ }),
52
+ ]);
53
+ return {
54
+ underlyingTokenBalance: ensureBigintLike(underlyingTokenBalance, "underlyingTokenBalance"),
55
+ zerc20Balance: ensureBigintLike(zerc20Balance, "zerc20Balance"),
56
+ nativeBalance: ensureBigintLike(nativeBalance, "nativeBalance"),
57
+ underlyingTokenAddress: normalizeAddress(underlyingTokenAddress),
58
+ zerc20TokenAddress: normalizeAddress(zerc20TokenAddress),
59
+ };
60
+ }
61
+ /**
62
+ * Check whether any funds are stuck in the adaptor for a given user.
63
+ *
64
+ * @remarks Convenience wrapper around `fetchAdaptorBalances` that returns `true`
65
+ * if any balance (underlying, zERC20, or native) is greater than zero.
66
+ */
67
+ export async function hasStuckFunds(params) {
68
+ const balances = await fetchAdaptorBalances(params);
69
+ return (balances.underlyingTokenBalance > 0n ||
70
+ balances.zerc20Balance > 0n ||
71
+ balances.nativeBalance > 0n);
72
+ }
73
+ /**
74
+ * Withdraw stuck funds from an adaptor contract.
75
+ *
76
+ * @remarks
77
+ * Calls the adaptor's `withdraw(token, amount)` function. The token parameter
78
+ * should be one of:
79
+ * - The underlying token address (for funds that were unwrapped but failed to bridge)
80
+ * - The zERC20 token address (for funds that failed before unwrap)
81
+ * - The native token sentinel `0xEeee...` (for stuck native token)
82
+ *
83
+ * @throws If `amount` is not positive.
84
+ * @returns Transaction hash for the withdraw.
85
+ */
86
+ export async function withdrawFromAdaptor(params) {
87
+ const { writeProvider, readProvider, adaptorAddress, token, amount, feeOverrides } = params;
88
+ const normalizedAmount = ensureBigintLike(amount, "amount");
89
+ if (normalizedAmount <= 0n) {
90
+ throw new Error("amount must be greater than zero");
91
+ }
92
+ const account = ensureAccount(writeProvider);
93
+ const normalizedAdaptor = normalizeAddress(adaptorAddress);
94
+ const normalizedToken = normalizeAddress(token);
95
+ const receipt = receiptProvider(writeProvider, readProvider);
96
+ const txOverrides = { account, chain: writeProvider.chain, ...spreadFeeOverrides(feeOverrides) };
97
+ const withdrawHash = await writeProvider.writeContract({
98
+ address: normalizedAdaptor,
99
+ abi: AdaptorArtifact.abi,
100
+ functionName: "withdraw",
101
+ args: [normalizedToken, normalizedAmount],
102
+ ...txOverrides,
103
+ });
104
+ const withdrawReceipt = await receipt.waitForTransactionReceipt({ hash: withdrawHash });
105
+ return { transactionHash: withdrawReceipt.transactionHash };
106
+ }
107
+ //# sourceMappingURL=adaptorWithdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptorWithdraw.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/adaptorWithdraw.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * Balance fetching operations for liquidity manager.
3
3
  */
4
- import type { PublicClient } from "viem";
4
+ import type { EvmReadProvider } from "../../types/evm.js";
5
5
  import type { LiquidityBalances } from "./types.js";
6
6
  /**
7
7
  * Fetch balances/decimals for the underlying token and its corresponding zERC20 for an account.
8
8
  * @remarks
9
9
  * - If the liquidity manager's `underlyingToken` is the native-token sentinel address,
10
- * balance is fetched via `publicClient.getBalance(...)` and decimals are assumed to be 18.
10
+ * balance is fetched via `provider.getBalance(...)` and decimals are assumed to be 18.
11
11
  * - Otherwise ERC-20 `balanceOf` and `decimals` are read for the underlying token.
12
12
  */
13
13
  export declare function fetchLiquidityManagerBalances(params: {
14
- publicClient: PublicClient;
14
+ provider: EvmReadProvider;
15
15
  account: string;
16
16
  liquidityManagerAddress: string;
17
17
  zerc20TokenAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAKzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyD7B"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+D7B"}
@@ -1,47 +1,54 @@
1
1
  /**
2
2
  * Balance fetching operations for liquidity manager.
3
3
  */
4
- import { erc20Abi } from "viem";
5
- import { getLiquidityManagerContract, getZerc20Contract } from "../../onchain/contracts.js";
4
+ import LiquidityManagerArtifact from "../../assets/abi/LiquidityManager.json" with { type: "json" };
5
+ import Zerc20Artifact from "../../assets/abi/zERC20.json" with { type: "json" };
6
+ import { ERC20_ABI } from "./abi.js";
6
7
  import { isNativeToken, NATIVE_DECIMALS, normalizeAddress } from "./helpers.js";
7
8
  /**
8
9
  * Fetch balances/decimals for the underlying token and its corresponding zERC20 for an account.
9
10
  * @remarks
10
11
  * - If the liquidity manager's `underlyingToken` is the native-token sentinel address,
11
- * balance is fetched via `publicClient.getBalance(...)` and decimals are assumed to be 18.
12
+ * balance is fetched via `provider.getBalance(...)` and decimals are assumed to be 18.
12
13
  * - Otherwise ERC-20 `balanceOf` and `decimals` are read for the underlying token.
13
14
  */
14
15
  export async function fetchLiquidityManagerBalances(params) {
15
- const { publicClient, account, liquidityManagerAddress, zerc20TokenAddress } = params;
16
+ const { provider, account, liquidityManagerAddress, zerc20TokenAddress } = params;
16
17
  const normalizedAccount = normalizeAddress(account);
17
18
  const managerAddress = normalizeAddress(liquidityManagerAddress);
18
19
  const tokenAddress = normalizeAddress(zerc20TokenAddress);
19
- const manager = getLiquidityManagerContract(managerAddress, publicClient);
20
- const underlyingAddress = normalizeAddress((await manager.read.underlyingToken()));
20
+ const underlyingAddress = normalizeAddress((await provider.readContract({
21
+ address: managerAddress,
22
+ abi: LiquidityManagerArtifact.abi,
23
+ functionName: "underlyingToken",
24
+ })));
21
25
  const nativeUnderlying = isNativeToken(underlyingAddress);
22
- const zerc20DecimalsPromise = publicClient.readContract({
26
+ const zerc20DecimalsPromise = provider.readContract({
23
27
  address: tokenAddress,
24
- abi: getZerc20Contract(tokenAddress, publicClient).abi,
28
+ abi: Zerc20Artifact.abi,
25
29
  functionName: "decimals",
26
30
  });
27
31
  const underlyingDecimalsPromise = nativeUnderlying
28
32
  ? Promise.resolve(NATIVE_DECIMALS)
29
- : publicClient.readContract({
33
+ : provider.readContract({
30
34
  address: underlyingAddress,
31
- abi: erc20Abi,
35
+ abi: ERC20_ABI,
32
36
  functionName: "decimals",
33
37
  });
34
- const zerc20BalancePromise = publicClient.readContract({
38
+ const zerc20BalancePromise = provider.readContract({
35
39
  address: tokenAddress,
36
- abi: getZerc20Contract(tokenAddress, publicClient).abi,
40
+ abi: Zerc20Artifact.abi,
37
41
  functionName: "balanceOf",
38
42
  args: [normalizedAccount],
39
43
  });
44
+ if (nativeUnderlying && !provider.getBalance) {
45
+ throw new Error("provider.getBalance is required for native token balance queries");
46
+ }
40
47
  const underlyingBalancePromise = nativeUnderlying
41
- ? publicClient.getBalance({ address: normalizedAccount })
42
- : publicClient.readContract({
48
+ ? provider.getBalance({ address: normalizedAccount })
49
+ : provider.readContract({
43
50
  address: underlyingAddress,
44
- abi: erc20Abi,
51
+ abi: ERC20_ABI,
45
52
  functionName: "balanceOf",
46
53
  args: [normalizedAccount],
47
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MAKnD;IACC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IACtF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE1E,MAAM,iBAAiB,GAAG,gBAAgB,CACxC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAkB,CACxD,CAAC;IACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE1D,MAAM,qBAAqB,GAAG,YAAY,CAAC,YAAY,CAAC;QACtD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,GAAG;QACtD,YAAY,EAAE,UAAU;KACzB,CAAoB,CAAC;IAEtB,MAAM,yBAAyB,GAAG,gBAAgB;QAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QAClC,CAAC,CAAE,YAAY,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,UAAU;SACzB,CAAqB,CAAC;IAE3B,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC;QACrD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,GAAG;QACtD,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,iBAAiB,CAAC;KAC1B,CAAoB,CAAC;IAEtB,MAAM,wBAAwB,GAAG,gBAAgB;QAC/C,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QACzD,CAAC,CAAE,YAAY,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,iBAAiB,CAAC;SAC1B,CAAqB,CAAC;IAE3B,MAAM,CAAC,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/F,qBAAqB;QACrB,yBAAyB;QACzB,wBAAwB;QACxB,oBAAoB;KACrB,CAAC,CAAC;IAEH,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QAC9C,aAAa;QACb,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,wBAAwB,MAAM,wCAAwC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpG,OAAO,cAAc,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAGhF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,MAKnD;IACC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;IAClF,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAE1D,MAAM,iBAAiB,GAAG,gBAAgB,CACxC,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC;QAC3B,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,wBAAwB,CAAC,GAAG;QACjC,YAAY,EAAE,iBAAiB;KAChC,CAAC,CAAkB,CACrB,CAAC;IACF,MAAM,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE1D,MAAM,qBAAqB,GAAG,QAAQ,CAAC,YAAY,CAAC;QAClD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,YAAY,EAAE,UAAU;KACzB,CAAoB,CAAC;IAEtB,MAAM,yBAAyB,GAAG,gBAAgB;QAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QAClC,CAAC,CAAE,QAAQ,CAAC,YAAY,CAAC;YACrB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,UAAU;SACzB,CAAqB,CAAC;IAE3B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC;QACjD,OAAO,EAAE,YAAY;QACrB,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,iBAAiB,CAAC;KAC1B,CAAoB,CAAC;IAEtB,IAAI,gBAAgB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,wBAAwB,GAAG,gBAAgB;QAC/C,CAAC,CAAC,QAAQ,CAAC,UAAW,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QACtD,CAAC,CAAE,QAAQ,CAAC,YAAY,CAAC;YACrB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,SAAS;YACd,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,iBAAiB,CAAC;SAC1B,CAAqB,CAAC;IAE3B,MAAM,CAAC,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/F,qBAAqB;QACrB,yBAAyB;QACzB,wBAAwB;QACxB,oBAAoB;KACrB,CAAC,CAAC;IAEH,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QAC9C,aAAa;QACb,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * Cross-chain unwrap operations using LayerZero.
3
3
  */
4
- import type { PublicClient, WalletClient } from "viem";
4
+ import type { EvmReadProvider, EvmWriteProvider } from "../../types/evm.js";
5
5
  import type { TokenEntry } from "../../registry/tokens.js";
6
- import type { FeeOverrides } from "../../utils/fees.js";
6
+ import { type FeeOverrides } from "../../utils/fees.js";
7
7
  import type { CrossUnwrapQuote, LiquidityActionResult } from "./types.js";
8
8
  /**
9
9
  * Parameters for `buildCrossUnwrapQuote`.
@@ -17,10 +17,10 @@ export interface CrossUnwrapQuoteParams {
17
17
  amount: bigint | number | string;
18
18
  /** EVM account address initiating the flow (source chain). */
19
19
  account: string;
20
- /** Optional public client for source chain reads. */
21
- publicClientSource?: PublicClient;
22
- /** Optional public client for destination chain reads (adaptor quote). */
23
- publicClientDestination?: PublicClient;
20
+ /** Read provider for source chain reads. */
21
+ readProviderSource: EvmReadProvider;
22
+ /** Read provider for destination chain reads (adaptor quote). */
23
+ readProviderDestination: EvmReadProvider;
24
24
  /**
25
25
  * Slippage tolerance in basis points (e.g. 50 = 0.5%, 300 = 3%).
26
26
  * @remarks Applied to both `SendParam.minAmountLD` and `BridgeRequest.minAmountOut`.
@@ -49,10 +49,12 @@ export declare function applySlippage(amount: bigint, slippageBps: number): bigi
49
49
  * Parameters for `sendCrossUnwrap`.
50
50
  */
51
51
  export interface CrossUnwrapSendParams {
52
- /** Wallet client used to sign and submit transactions on the source chain. */
53
- walletClient: WalletClient;
54
- /** Optional public client for reads and receipt polling. */
55
- publicClient?: PublicClient;
52
+ /** Write provider used to sign and submit transactions on the source chain. */
53
+ writeProvider: EvmWriteProvider;
54
+ /** Optional read provider for reads and receipt polling. */
55
+ readProvider?: EvmReadProvider;
56
+ /** Read provider for destination chain reads (required when no pre-built quote is provided). */
57
+ readProviderDestination?: EvmReadProvider;
56
58
  /** Source token (zERC20) config on the source chain. */
57
59
  sourceToken: TokenEntry;
58
60
  /** Destination token config on the destination chain. */
@@ -61,7 +63,7 @@ export interface CrossUnwrapSendParams {
61
63
  amount: bigint | number | string;
62
64
  /** Optional pre-built quote from `buildCrossUnwrapQuote`. If omitted, the quote is built internally. */
63
65
  quote?: CrossUnwrapQuote;
64
- /** Optional viem fee overrides (e.g., gas, maxFeePerGas). */
66
+ /** Optional fee overrides (e.g., gas, maxFeePerGas). */
65
67
  feeOverrides?: FeeOverrides;
66
68
  }
67
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"crossUnwrap.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/crossUnwrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAO,MAAM,MAAM,CAAC;AAK5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,qBAAqB,EAAa,MAAM,YAAY,CAAC;AAsFpG;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,WAAW,EAAE,UAAU,CAAC;IACxB,gGAAgG;IAChG,gBAAgB,EAAE,UAAU,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,0EAA0E;IAC1E,uBAAuB,CAAC,EAAE,YAAY,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAmG3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,YAAY,EAAE,YAAY,CAAC;IAC3B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wDAAwD;IACxD,WAAW,EAAE,UAAU,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,UAAU,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,wGAAwG;IACxG,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CA8BhC"}
1
+ {"version":3,"file":"crossUnwrap.d.ts","sourceRoot":"","sources":["../../../src/operations/liquidityManager/crossUnwrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAO,MAAM,oBAAoB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAiB,gBAAgB,EAAE,qBAAqB,EAAa,MAAM,YAAY,CAAC;AAsFpG;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,WAAW,EAAE,UAAU,CAAC;IACxB,gGAAgG;IAChG,gBAAgB,EAAE,UAAU,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,kBAAkB,EAAE,eAAe,CAAC;IACpC,iEAAiE;IACjE,uBAAuB,EAAE,eAAe,CAAC;IACzC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CA+G3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,aAAa,EAAE,gBAAgB,CAAC;IAChC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,gGAAgG;IAChG,uBAAuB,CAAC,EAAE,eAAe,CAAC;IAC1C,wDAAwD;IACxD,WAAW,EAAE,UAAU,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,UAAU,CAAC;IAC7B,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,wGAAwG;IACxG,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,wDAAwD;IACxD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAwChC"}
@@ -2,10 +2,10 @@
2
2
  * Cross-chain unwrap operations using LayerZero.
3
3
  */
4
4
  import { encodeAbiParameters, hexToBytes, padHex, toHex } from "viem";
5
- import { waitForTransactionReceipt } from "viem/actions";
6
- import { getAdaptorContract, getZerc20Contract } from "../../onchain/contracts.js";
7
- import { createProviderForToken } from "../../registry/tokens.js";
8
- import { ensureAccount, ensureBigintLike, normalizeAddress, receiptClient, removeDust, } from "./helpers.js";
5
+ import AdaptorArtifact from "../../assets/abi/Adaptor.json" with { type: "json" };
6
+ import Zerc20Artifact from "../../assets/abi/zERC20.json" with { type: "json" };
7
+ import { spreadFeeOverrides } from "../../utils/fees.js";
8
+ import { ensureAccount, ensureBigintLike, normalizeAddress, receiptProvider, removeDust, } from "./helpers.js";
9
9
  // ============================================================================
10
10
  // LayerZero Options Constants
11
11
  // ============================================================================
@@ -87,8 +87,9 @@ export async function buildCrossUnwrapQuote(params) {
87
87
  throw new Error("destination token is missing adaptor configuration for cross-chain unwrap");
88
88
  }
89
89
  const adaptorAddress = normalizeAddress(destinationToken.adaptorAddress);
90
- const dstClient = params.publicClientDestination ?? createProviderForToken(destinationToken);
91
- const srcClient = params.publicClientSource ?? createProviderForToken(sourceToken);
90
+ const dstProvider = params.readProviderDestination;
91
+ const srcProvider = params.readProviderSource;
92
+ const zerc20Address = normalizeAddress(sourceToken.tokenAddress);
92
93
  const effectiveSlippageBps = BigInt(slippageBps ?? 0);
93
94
  const bridgeRequest = {
94
95
  dstEid: Number(sourceToken.eid),
@@ -98,11 +99,18 @@ export async function buildCrossUnwrapQuote(params) {
98
99
  composeMsg: "0x",
99
100
  oftCmd: "0x",
100
101
  };
101
- const zerc20 = getZerc20Contract(normalizeAddress(sourceToken.tokenAddress), srcClient);
102
- const adaptor = getAdaptorContract(adaptorAddress, dstClient);
103
102
  const [feeQuote, decimalConversionRate] = await Promise.all([
104
- adaptor.read.quoteFee([normalizedAmount, bridgeRequest]),
105
- zerc20.read.decimalConversionRate(),
103
+ dstProvider.readContract({
104
+ address: adaptorAddress,
105
+ abi: AdaptorArtifact.abi,
106
+ functionName: "quoteFee",
107
+ args: [normalizedAmount, bridgeRequest],
108
+ }),
109
+ srcProvider.readContract({
110
+ address: zerc20Address,
111
+ abi: Zerc20Artifact.abi,
112
+ functionName: "decimalConversionRate",
113
+ }),
106
114
  ]);
107
115
  const nativeBridgeBuffer = (feeQuote.nativeBridgeFee * 3n) / 2n;
108
116
  const composeOptions = [[COMPOSE_GAS, nativeBridgeBuffer]];
@@ -131,7 +139,12 @@ export async function buildCrossUnwrapQuote(params) {
131
139
  composeMsg: composePayload,
132
140
  oftCmd: "0x",
133
141
  };
134
- const sendFee = (await zerc20.read.quoteSend([sendParam, false]));
142
+ const sendFee = (await srcProvider.readContract({
143
+ address: zerc20Address,
144
+ abi: Zerc20Artifact.abi,
145
+ functionName: "quoteSend",
146
+ args: [sendParam, false],
147
+ }));
135
148
  if (sendFee.lzTokenFee > 0n) {
136
149
  throw new Error("lzTokenFee payments are not supported for this flow");
137
150
  }
@@ -163,9 +176,15 @@ export function applySlippage(amount, slippageBps) {
163
176
  * The required native fee is taken from the quote and sent as `value` with the transaction.
164
177
  */
165
178
  export async function sendCrossUnwrap(params) {
166
- const { walletClient, publicClient, sourceToken, destinationToken } = params;
167
- const account = ensureAccount(walletClient);
168
- const receiptClientInstance = receiptClient(walletClient, publicClient);
179
+ const { writeProvider, readProvider, sourceToken, destinationToken } = params;
180
+ if (!params.quote && !params.readProvider) {
181
+ throw new Error("readProvider is required when no pre-built quote is provided");
182
+ }
183
+ if (!params.quote && !params.readProviderDestination) {
184
+ throw new Error("readProviderDestination is required when no pre-built quote is provided");
185
+ }
186
+ const account = ensureAccount(writeProvider);
187
+ const receipt = receiptProvider(writeProvider, readProvider);
169
188
  const feeOverrides = params.feeOverrides;
170
189
  const quote = params.quote ??
171
190
  (await buildCrossUnwrapQuote({
@@ -173,17 +192,22 @@ export async function sendCrossUnwrap(params) {
173
192
  destinationToken,
174
193
  amount: params.amount,
175
194
  account,
176
- publicClientSource: publicClient,
195
+ readProviderSource: readProvider,
196
+ readProviderDestination: params.readProviderDestination,
177
197
  }));
178
- const zerc20 = getZerc20Contract(normalizeAddress(sourceToken.tokenAddress), walletClient);
179
- const sendHash = await zerc20.write.send([quote.sendParam, { nativeFee: quote.sendNativeFee, lzTokenFee: 0n }, account], {
198
+ const zerc20Address = normalizeAddress(sourceToken.tokenAddress);
199
+ const sendHash = await writeProvider.writeContract({
200
+ address: zerc20Address,
201
+ abi: Zerc20Artifact.abi,
202
+ functionName: "send",
203
+ args: [quote.sendParam, { nativeFee: quote.sendNativeFee, lzTokenFee: 0n }, account],
180
204
  account,
181
205
  value: quote.sendNativeFee,
182
- ...(feeOverrides ?? {}),
206
+ ...spreadFeeOverrides(feeOverrides),
183
207
  });
184
- const receipt = await waitForTransactionReceipt(receiptClientInstance, { hash: sendHash });
208
+ const sendReceipt = await receipt.waitForTransactionReceipt({ hash: sendHash });
185
209
  return {
186
- transactionHash: receipt.transactionHash,
210
+ transactionHash: sendReceipt.transactionHash,
187
211
  };
188
212
  }
189
213
  //# sourceMappingURL=crossUnwrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crossUnwrap.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/crossUnwrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossUnwrap.js","sourceRoot":"","sources":["../../../src/operations/liquidityManager/crossUnwrap.ts"],"names":[],"mappings":"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"}