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 @@
1
+ {"version":3,"file":"layerzeroScan.js","sourceRoot":"","sources":["../../src/operations/layerzeroScan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adaptorWithdraw.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptorWithdraw.test.d.ts","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/adaptorWithdraw.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
1
+ import { beforeEach, describe, expect, test, vi } from "vitest";
2
+ import { fetchAdaptorBalances, hasStuckFunds, withdrawFromAdaptor } from "../adaptorWithdraw.js";
3
+ describe("fetchAdaptorBalances", () => {
4
+ const mockProvider = {
5
+ readContract: vi.fn(),
6
+ };
7
+ beforeEach(() => {
8
+ vi.clearAllMocks();
9
+ });
10
+ test("fetches all adaptor balances for a user", async () => {
11
+ const underlyingToken = "0x1234567890123456789012345678901234567890";
12
+ const zerc20Token = "0xabcdef1234567890abcdef1234567890abcdef12";
13
+ mockProvider.readContract
14
+ .mockResolvedValueOnce(100n) // underlyingTokenBalances
15
+ .mockResolvedValueOnce(200n) // zerc20Balances
16
+ .mockResolvedValueOnce(300n) // nativeBalances
17
+ .mockResolvedValueOnce(underlyingToken) // UNDERLYING_TOKEN
18
+ .mockResolvedValueOnce(zerc20Token); // ZERC20_TOKEN
19
+ const result = await fetchAdaptorBalances({
20
+ provider: mockProvider,
21
+ account: "0xUser1234567890123456789012345678901234",
22
+ adaptorAddress: "0xAdaptor123456789012345678901234567890ab",
23
+ });
24
+ expect(result.underlyingTokenBalance).toBe(100n);
25
+ expect(result.zerc20Balance).toBe(200n);
26
+ expect(result.nativeBalance).toBe(300n);
27
+ expect(result.underlyingTokenAddress).toBe(underlyingToken.toLowerCase());
28
+ expect(result.zerc20TokenAddress).toBe(zerc20Token.toLowerCase());
29
+ });
30
+ test("returns zero balances when no funds are stuck", async () => {
31
+ mockProvider.readContract
32
+ .mockResolvedValueOnce(0n)
33
+ .mockResolvedValueOnce(0n)
34
+ .mockResolvedValueOnce(0n)
35
+ .mockResolvedValueOnce("0x1234567890123456789012345678901234567890")
36
+ .mockResolvedValueOnce("0xabcdef1234567890abcdef1234567890abcdef12");
37
+ const result = await fetchAdaptorBalances({
38
+ provider: mockProvider,
39
+ account: "0xUser",
40
+ adaptorAddress: "0xAdaptor",
41
+ });
42
+ expect(result.underlyingTokenBalance).toBe(0n);
43
+ expect(result.zerc20Balance).toBe(0n);
44
+ expect(result.nativeBalance).toBe(0n);
45
+ });
46
+ test("calls readContract with correct function names", async () => {
47
+ mockProvider.readContract
48
+ .mockResolvedValueOnce(0n)
49
+ .mockResolvedValueOnce(0n)
50
+ .mockResolvedValueOnce(0n)
51
+ .mockResolvedValueOnce("0x1234567890123456789012345678901234567890")
52
+ .mockResolvedValueOnce("0xabcdef1234567890abcdef1234567890abcdef12");
53
+ await fetchAdaptorBalances({
54
+ provider: mockProvider,
55
+ account: "0xUser1234567890123456789012345678901234",
56
+ adaptorAddress: "0xAdaptor123456789012345678901234567890ab",
57
+ });
58
+ const calls = mockProvider.readContract.mock.calls;
59
+ const functionNames = calls.map((c) => c[0].functionName);
60
+ expect(functionNames).toContain("underlyingTokenBalances");
61
+ expect(functionNames).toContain("zerc20Balances");
62
+ expect(functionNames).toContain("nativeBalances");
63
+ expect(functionNames).toContain("UNDERLYING_TOKEN");
64
+ expect(functionNames).toContain("ZERC20_TOKEN");
65
+ });
66
+ });
67
+ describe("hasStuckFunds", () => {
68
+ const mockProvider = {
69
+ readContract: vi.fn(),
70
+ };
71
+ beforeEach(() => {
72
+ vi.clearAllMocks();
73
+ });
74
+ const setupMock = (underlying, zerc20, native) => {
75
+ mockProvider.readContract
76
+ .mockResolvedValueOnce(underlying)
77
+ .mockResolvedValueOnce(zerc20)
78
+ .mockResolvedValueOnce(native)
79
+ .mockResolvedValueOnce("0x1234567890123456789012345678901234567890")
80
+ .mockResolvedValueOnce("0xabcdef1234567890abcdef1234567890abcdef12");
81
+ };
82
+ test("returns true when underlying balance is stuck", async () => {
83
+ setupMock(100n, 0n, 0n);
84
+ expect(await hasStuckFunds({
85
+ provider: mockProvider,
86
+ account: "0xUser",
87
+ adaptorAddress: "0xAdaptor",
88
+ })).toBe(true);
89
+ });
90
+ test("returns true when zerc20 balance is stuck", async () => {
91
+ setupMock(0n, 50n, 0n);
92
+ expect(await hasStuckFunds({
93
+ provider: mockProvider,
94
+ account: "0xUser",
95
+ adaptorAddress: "0xAdaptor",
96
+ })).toBe(true);
97
+ });
98
+ test("returns true when native balance is stuck", async () => {
99
+ setupMock(0n, 0n, 10n);
100
+ expect(await hasStuckFunds({
101
+ provider: mockProvider,
102
+ account: "0xUser",
103
+ adaptorAddress: "0xAdaptor",
104
+ })).toBe(true);
105
+ });
106
+ test("returns false when no funds are stuck", async () => {
107
+ setupMock(0n, 0n, 0n);
108
+ expect(await hasStuckFunds({
109
+ provider: mockProvider,
110
+ account: "0xUser",
111
+ adaptorAddress: "0xAdaptor",
112
+ })).toBe(false);
113
+ });
114
+ });
115
+ describe("withdrawFromAdaptor", () => {
116
+ const mockWriteProvider = {
117
+ account: { address: "0xUser1234567890123456789012345678901234" },
118
+ chain: { id: 1 },
119
+ writeContract: vi.fn(),
120
+ waitForTransactionReceipt: vi.fn(),
121
+ };
122
+ beforeEach(() => {
123
+ vi.clearAllMocks();
124
+ });
125
+ test("executes withdraw transaction", async () => {
126
+ const txHash = "0xabc123";
127
+ mockWriteProvider.writeContract.mockResolvedValue(txHash);
128
+ mockWriteProvider.waitForTransactionReceipt.mockResolvedValue({ transactionHash: txHash });
129
+ const result = await withdrawFromAdaptor({
130
+ writeProvider: mockWriteProvider,
131
+ adaptorAddress: "0xAdaptor123456789012345678901234567890ab",
132
+ token: "0xToken1234567890123456789012345678901234",
133
+ amount: 100n,
134
+ });
135
+ expect(result.transactionHash).toBe(txHash);
136
+ const call = mockWriteProvider.writeContract.mock.calls[0][0];
137
+ expect(call.functionName).toBe("withdraw");
138
+ expect(call.args).toEqual(["0x0token1234567890123456789012345678901234", 100n]);
139
+ });
140
+ test("throws when amount is zero", async () => {
141
+ await expect(withdrawFromAdaptor({
142
+ writeProvider: mockWriteProvider,
143
+ adaptorAddress: "0xAdaptor",
144
+ token: "0xToken",
145
+ amount: 0n,
146
+ })).rejects.toThrow("amount must be greater than zero");
147
+ });
148
+ test("throws when amount is negative", async () => {
149
+ await expect(withdrawFromAdaptor({
150
+ writeProvider: mockWriteProvider,
151
+ adaptorAddress: "0xAdaptor",
152
+ token: "0xToken",
153
+ amount: -1n,
154
+ })).rejects.toThrow("amount must be greater than zero");
155
+ });
156
+ });
157
+ //# sourceMappingURL=adaptorWithdraw.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptorWithdraw.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/adaptorWithdraw.test.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,31 @@
1
1
  import { beforeEach, describe, expect, test, vi } from "vitest";
2
2
  import { fetchLiquidityManagerBalances } from "../balance.js";
3
3
  import { NATIVE_TOKEN_ADDRESS } from "../helpers.js";
4
- // Mock dependencies
5
- vi.mock("../../../onchain/contracts.js", () => ({
6
- getLiquidityManagerContract: vi.fn(),
7
- getZerc20Contract: vi.fn(),
8
- }));
9
- import { getLiquidityManagerContract, getZerc20Contract } from "../../../onchain/contracts.js";
10
- const mockGetLiquidityManagerContract = vi.mocked(getLiquidityManagerContract);
11
- const mockGetZerc20Contract = vi.mocked(getZerc20Contract);
12
4
  describe("fetchLiquidityManagerBalances", () => {
13
- const mockPublicClient = {
5
+ const mockProvider = {
14
6
  readContract: vi.fn(),
15
7
  getBalance: vi.fn(),
16
- };
17
- const mockManagerContract = {
18
- read: {
19
- underlyingToken: vi.fn(),
20
- },
21
- };
22
- const mockZerc20Contract = {
23
- abi: [],
8
+ waitForTransactionReceipt: vi.fn(),
24
9
  };
25
10
  beforeEach(() => {
26
11
  vi.clearAllMocks();
27
- mockGetLiquidityManagerContract.mockReturnValue(mockManagerContract);
28
- mockGetZerc20Contract.mockReturnValue(mockZerc20Contract);
29
12
  });
30
13
  test("fetches balances for ERC20 underlying token", async () => {
31
14
  const underlyingAddress = "0x1234567890123456789012345678901234567890";
32
- mockManagerContract.read.underlyingToken.mockResolvedValue(underlyingAddress);
33
- // Order matches Promise.all in implementation:
34
- // [zerc20Decimals, underlyingDecimals, underlyingBalance, zerc20Balance]
35
- mockPublicClient.readContract
15
+ // readContract calls:
16
+ // 1. underlyingToken
17
+ // 2. zerc20 decimals
18
+ // 3. underlying decimals
19
+ // 4. zerc20 balanceOf (note: Promise.all order is decimals, decimals, balance, balance)
20
+ // 5. underlying balanceOf
21
+ mockProvider.readContract
22
+ .mockResolvedValueOnce(underlyingAddress) // underlyingToken
36
23
  .mockResolvedValueOnce(18) // zerc20 decimals
37
24
  .mockResolvedValueOnce(6) // underlying decimals
38
25
  .mockResolvedValueOnce(500n) // zerc20 balance
39
26
  .mockResolvedValueOnce(1000n); // underlying balance
40
27
  const result = await fetchLiquidityManagerBalances({
41
- publicClient: mockPublicClient,
28
+ provider: mockProvider,
42
29
  account: "0xAccount1234567890123456789012345678901234",
43
30
  liquidityManagerAddress: "0xManager123456789012345678901234567890ab",
44
31
  zerc20TokenAddress: "0xZerc20123456789012345678901234567890ab",
@@ -50,13 +37,13 @@ describe("fetchLiquidityManagerBalances", () => {
50
37
  expect(result.zerc20Decimals).toBe(18);
51
38
  });
52
39
  test("fetches balances for native underlying token", async () => {
53
- mockManagerContract.read.underlyingToken.mockResolvedValue(NATIVE_TOKEN_ADDRESS);
54
- mockPublicClient.readContract
40
+ mockProvider.readContract
41
+ .mockResolvedValueOnce(NATIVE_TOKEN_ADDRESS) // underlyingToken
55
42
  .mockResolvedValueOnce(18) // zerc20 decimals
56
43
  .mockResolvedValueOnce(2000n); // zerc20 balance
57
- mockPublicClient.getBalance.mockResolvedValue(5000n);
44
+ mockProvider.getBalance.mockResolvedValue(5000n);
58
45
  const result = await fetchLiquidityManagerBalances({
59
- publicClient: mockPublicClient,
46
+ provider: mockProvider,
60
47
  account: "0xAccount",
61
48
  liquidityManagerAddress: "0xManager",
62
49
  zerc20TokenAddress: "0xZerc20",
@@ -69,36 +56,36 @@ describe("fetchLiquidityManagerBalances", () => {
69
56
  });
70
57
  test("normalizes addresses", async () => {
71
58
  const underlyingAddress = "0xABCDEF1234567890ABCDEF1234567890ABCDEF12";
72
- mockManagerContract.read.underlyingToken.mockResolvedValue(underlyingAddress);
73
- mockPublicClient.readContract
59
+ mockProvider.readContract
60
+ .mockResolvedValueOnce(underlyingAddress) // underlyingToken
74
61
  .mockResolvedValueOnce(18)
75
62
  .mockResolvedValueOnce(18)
76
63
  .mockResolvedValueOnce(100n)
77
64
  .mockResolvedValueOnce(100n);
78
65
  const result = await fetchLiquidityManagerBalances({
79
- publicClient: mockPublicClient,
66
+ provider: mockProvider,
80
67
  account: "0xACCOUNT",
81
68
  liquidityManagerAddress: "0xMANAGER",
82
69
  zerc20TokenAddress: "0xZERC20",
83
70
  });
84
71
  expect(result.underlyingAddress).toBe(underlyingAddress.toLowerCase());
85
72
  });
86
- test("calls contracts with correct parameters", async () => {
73
+ test("calls readContract with correct parameters", async () => {
87
74
  const underlyingAddress = "0x1234567890123456789012345678901234567890";
88
- mockManagerContract.read.underlyingToken.mockResolvedValue(underlyingAddress);
89
- mockPublicClient.readContract
75
+ mockProvider.readContract
76
+ .mockResolvedValueOnce(underlyingAddress) // underlyingToken
90
77
  .mockResolvedValueOnce(18)
91
78
  .mockResolvedValueOnce(6)
92
79
  .mockResolvedValueOnce(100n)
93
80
  .mockResolvedValueOnce(200n);
94
81
  await fetchLiquidityManagerBalances({
95
- publicClient: mockPublicClient,
82
+ provider: mockProvider,
96
83
  account: "0xAccount1234567890123456789012345678901234",
97
84
  liquidityManagerAddress: "0xManager",
98
85
  zerc20TokenAddress: "0xZerc20Token",
99
86
  });
100
- expect(mockGetLiquidityManagerContract).toHaveBeenCalled();
101
- expect(mockGetZerc20Contract).toHaveBeenCalled();
87
+ // First call should be underlyingToken
88
+ expect(mockProvider.readContract).toHaveBeenCalledWith(expect.objectContaining({ functionName: "underlyingToken" }));
102
89
  });
103
90
  });
104
91
  //# sourceMappingURL=balance.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/balance.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/balance.test.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,5 @@
1
1
  import { beforeEach, describe, expect, test, vi } from "vitest";
2
2
  import { applySlippage, buildCrossUnwrapQuote, sendCrossUnwrap } from "../crossUnwrap.js";
3
- // Mock dependencies
4
- vi.mock("../../../onchain/contracts.js", () => ({
5
- getAdaptorContract: vi.fn(),
6
- getZerc20Contract: vi.fn(),
7
- }));
8
- vi.mock("../../../registry/tokens.js", () => ({
9
- createProviderForToken: vi.fn(),
10
- }));
11
- vi.mock("viem/actions", () => ({
12
- waitForTransactionReceipt: vi.fn(),
13
- }));
14
- import { getAdaptorContract, getZerc20Contract } from "../../../onchain/contracts.js";
15
- import { createProviderForToken } from "../../../registry/tokens.js";
16
- import { waitForTransactionReceipt } from "viem/actions";
17
- const mockGetAdaptorContract = vi.mocked(getAdaptorContract);
18
- const mockGetZerc20Contract = vi.mocked(getZerc20Contract);
19
- const mockCreateProviderForToken = vi.mocked(createProviderForToken);
20
- const mockWaitForTransactionReceipt = vi.mocked(waitForTransactionReceipt);
21
3
  describe("buildCrossUnwrapQuote", () => {
22
4
  const mockSourceToken = {
23
5
  chainId: 1n,
@@ -32,6 +14,11 @@ describe("buildCrossUnwrapQuote", () => {
32
14
  adaptorAddress: "0x3456789012345678901234567890123456789012",
33
15
  rpcUrls: ["https://rpc2.example.com"],
34
16
  };
17
+ const mockProvider = {
18
+ readContract: vi.fn(),
19
+ getBalance: vi.fn(),
20
+ waitForTransactionReceipt: vi.fn(),
21
+ };
35
22
  beforeEach(() => {
36
23
  vi.clearAllMocks();
37
24
  });
@@ -41,6 +28,8 @@ describe("buildCrossUnwrapQuote", () => {
41
28
  destinationToken: mockDestinationToken,
42
29
  amount: 0n,
43
30
  account: "0xAccount1234567890123456789012345678901234",
31
+ readProviderSource: mockProvider,
32
+ readProviderDestination: mockProvider,
44
33
  })).rejects.toThrow("amount must be greater than zero");
45
34
  });
46
35
  test("throws for negative amount", async () => {
@@ -49,6 +38,8 @@ describe("buildCrossUnwrapQuote", () => {
49
38
  destinationToken: mockDestinationToken,
50
39
  amount: -100n,
51
40
  account: "0xAccount1234567890123456789012345678901234",
41
+ readProviderSource: mockProvider,
42
+ readProviderDestination: mockProvider,
52
43
  })).rejects.toThrow("amount must be greater than zero");
53
44
  });
54
45
  test("throws when source token missing eid", async () => {
@@ -58,6 +49,8 @@ describe("buildCrossUnwrapQuote", () => {
58
49
  destinationToken: mockDestinationToken,
59
50
  amount: 1000n,
60
51
  account: "0xAccount1234567890123456789012345678901234",
52
+ readProviderSource: mockProvider,
53
+ readProviderDestination: mockProvider,
61
54
  })).rejects.toThrow("source token is missing eid for cross-chain unwrap");
62
55
  });
63
56
  test("throws when destination token missing eid", async () => {
@@ -67,6 +60,8 @@ describe("buildCrossUnwrapQuote", () => {
67
60
  destinationToken: tokenWithoutEid,
68
61
  amount: 1000n,
69
62
  account: "0xAccount1234567890123456789012345678901234",
63
+ readProviderSource: mockProvider,
64
+ readProviderDestination: mockProvider,
70
65
  })).rejects.toThrow("destination token is missing adaptor configuration for cross-chain unwrap");
71
66
  });
72
67
  test("throws when destination token missing adaptor address", async () => {
@@ -76,13 +71,21 @@ describe("buildCrossUnwrapQuote", () => {
76
71
  destinationToken: tokenWithoutAdaptor,
77
72
  amount: 1000n,
78
73
  account: "0xAccount1234567890123456789012345678901234",
74
+ readProviderSource: mockProvider,
75
+ readProviderDestination: mockProvider,
79
76
  })).rejects.toThrow("destination token is missing adaptor configuration for cross-chain unwrap");
80
77
  });
81
78
  });
82
79
  describe("sendCrossUnwrap", () => {
83
- const mockWalletClient = {
80
+ const mockWriteProvider = {
84
81
  account: { address: "0xAccount1234567890123456789012345678901234" },
85
82
  chain: { id: 1 },
83
+ writeContract: vi.fn(),
84
+ };
85
+ const mockReadProvider = {
86
+ readContract: vi.fn(),
87
+ getBalance: vi.fn(),
88
+ waitForTransactionReceipt: vi.fn(),
86
89
  };
87
90
  const mockSourceToken = {
88
91
  chainId: 1n,
@@ -121,41 +124,58 @@ describe("sendCrossUnwrap", () => {
121
124
  oftCmd: "0x",
122
125
  },
123
126
  };
124
- const mockZerc20Contract = {
125
- write: {
126
- send: vi.fn(),
127
- },
128
- };
129
127
  beforeEach(() => {
130
128
  vi.clearAllMocks();
131
- mockGetZerc20Contract.mockReturnValue(mockZerc20Contract);
132
- mockZerc20Contract.write.send.mockResolvedValue("0xSendHash");
133
- mockWaitForTransactionReceipt.mockResolvedValue({ transactionHash: "0xReceiptHash" });
129
+ mockWriteProvider.writeContract.mockResolvedValue("0xSendHash");
130
+ mockReadProvider.waitForTransactionReceipt.mockResolvedValue({
131
+ transactionHash: "0xReceiptHash",
132
+ });
134
133
  });
135
134
  test("sends cross unwrap with provided quote", async () => {
136
135
  const result = await sendCrossUnwrap({
137
- walletClient: mockWalletClient,
136
+ writeProvider: mockWriteProvider,
137
+ readProvider: mockReadProvider,
138
138
  sourceToken: mockSourceToken,
139
139
  destinationToken: mockDestinationToken,
140
140
  amount: 1000n,
141
141
  quote: mockQuote,
142
142
  });
143
143
  expect(result.transactionHash).toBe("0xReceiptHash");
144
- expect(mockZerc20Contract.write.send).toHaveBeenCalledWith([mockQuote.sendParam, { nativeFee: 50n, lzTokenFee: 0n }, expect.any(String)], expect.objectContaining({
144
+ expect(mockWriteProvider.writeContract).toHaveBeenCalledWith(expect.objectContaining({
145
+ functionName: "send",
145
146
  value: 50n,
146
147
  }));
147
148
  });
149
+ test("throws when no quote and no readProvider provided", async () => {
150
+ await expect(sendCrossUnwrap({
151
+ writeProvider: mockWriteProvider,
152
+ sourceToken: mockSourceToken,
153
+ destinationToken: mockDestinationToken,
154
+ amount: 1000n,
155
+ readProviderDestination: mockReadProvider,
156
+ })).rejects.toThrow("readProvider is required when no pre-built quote is provided");
157
+ });
158
+ test("throws when no quote and no readProviderDestination provided", async () => {
159
+ await expect(sendCrossUnwrap({
160
+ writeProvider: mockWriteProvider,
161
+ readProvider: mockReadProvider,
162
+ sourceToken: mockSourceToken,
163
+ destinationToken: mockDestinationToken,
164
+ amount: 1000n,
165
+ })).rejects.toThrow("readProviderDestination is required when no pre-built quote is provided");
166
+ });
148
167
  test("uses fee overrides when provided", async () => {
149
168
  const feeOverrides = { maxFeePerGas: 100n, maxPriorityFeePerGas: 10n };
150
169
  await sendCrossUnwrap({
151
- walletClient: mockWalletClient,
170
+ writeProvider: mockWriteProvider,
171
+ readProvider: mockReadProvider,
152
172
  sourceToken: mockSourceToken,
153
173
  destinationToken: mockDestinationToken,
154
174
  amount: 1000n,
155
175
  quote: mockQuote,
156
176
  feeOverrides,
157
177
  });
158
- expect(mockZerc20Contract.write.send).toHaveBeenCalledWith(expect.any(Array), expect.objectContaining({
178
+ expect(mockWriteProvider.writeContract).toHaveBeenCalledWith(expect.objectContaining({
159
179
  maxFeePerGas: 100n,
160
180
  maxPriorityFeePerGas: 10n,
161
181
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"crossUnwrap.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/crossUnwrap.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossUnwrap.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/crossUnwrap.test.ts"],"names":[],"mappings":"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"}
@@ -69,25 +69,28 @@ describe("isNativeToken", () => {
69
69
  });
70
70
  });
71
71
  describe("ensureAccount", () => {
72
- test("throws when wallet client has no account", () => {
73
- const mockWalletClient = {
72
+ test("throws when provider has no account", () => {
73
+ const mockProvider = {
74
74
  account: undefined,
75
+ writeContract: async () => "0x",
75
76
  };
76
- expect(() => ensureAccount(mockWalletClient)).toThrow("wallet client is missing default account");
77
+ expect(() => ensureAccount(mockProvider)).toThrow("writeProvider is missing default account");
77
78
  });
78
- test("throws when wallet client account has no address", () => {
79
- const mockWalletClient = {
79
+ test("throws when provider account has no address", () => {
80
+ const mockProvider = {
80
81
  account: {},
82
+ writeContract: async () => "0x",
81
83
  };
82
- expect(() => ensureAccount(mockWalletClient)).toThrow("wallet client is missing default account");
84
+ expect(() => ensureAccount(mockProvider)).toThrow("writeProvider is missing default account");
83
85
  });
84
86
  test("returns normalized address when account exists", () => {
85
- const mockWalletClient = {
87
+ const mockProvider = {
86
88
  account: {
87
89
  address: "0xAbCdEf1234567890AbCdEf1234567890AbCdEf12",
88
90
  },
91
+ writeContract: async () => "0x",
89
92
  };
90
- const result = ensureAccount(mockWalletClient);
93
+ const result = ensureAccount(mockProvider);
91
94
  expect(result).toBe("0xabcdef1234567890abcdef1234567890abcdef12");
92
95
  });
93
96
  });
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/helpers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../../../../src/operations/liquidityManager/__tests__/helpers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC/E,MAAM,eAAe,GAAG,4CAA6D,CAAC;QACtF,yEAAyE;QACzE,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;QAC1E,MAAM,eAAe,GAAG,4CAA4C,CAAC;QACrE,2EAA2E;QAC3E,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,YAAY,GAAG,4CAA6D,CAAC;QACnF,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,WAAW,GAAG,4CAA6D,CAAC;QAClF,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,SAAS;YAClB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,IAAa;SAClC,CAAC;QAET,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,IAAa;SAClC,CAAC;QAET,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE;gBACP,OAAO,EAAE,4CAA4C;aACtD;YACD,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,IAAa;SAClC,CAAC;QAET,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,0EAA0E;QAC1E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,kDAAkD;QAClD,MAAM,cAAc,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO;QAC1C,MAAM,MAAM,GAAG,oBAA0B,CAAC;QAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAClD,+CAA+C;QAC/C,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAA0B,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}