@across-protocol/sdk 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (930) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +116 -0
  3. package/dist/cjs/apiClient/abstractClient.d.ts +13 -0
  4. package/dist/cjs/apiClient/abstractClient.js +17 -0
  5. package/dist/cjs/apiClient/abstractClient.js.map +1 -0
  6. package/dist/cjs/apiClient/index.d.ts +2 -0
  7. package/dist/cjs/apiClient/index.js +11 -0
  8. package/dist/cjs/apiClient/index.js.map +1 -0
  9. package/dist/cjs/apiClient/mockedClient.d.ts +11 -0
  10. package/dist/cjs/apiClient/mockedClient.js +60 -0
  11. package/dist/cjs/apiClient/mockedClient.js.map +1 -0
  12. package/dist/cjs/apiClient/productionClient.d.ts +10 -0
  13. package/dist/cjs/apiClient/productionClient.js +110 -0
  14. package/dist/cjs/apiClient/productionClient.js.map +1 -0
  15. package/dist/cjs/apiClient/types.d.ts +44 -0
  16. package/dist/cjs/apiClient/types.js +3 -0
  17. package/dist/cjs/apiClient/types.js.map +1 -0
  18. package/dist/cjs/caching/Arweave/ArweaveClient.d.ts +20 -0
  19. package/dist/cjs/caching/Arweave/ArweaveClient.js +218 -0
  20. package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -0
  21. package/dist/cjs/caching/Arweave/index.d.ts +1 -0
  22. package/dist/cjs/caching/Arweave/index.js +5 -0
  23. package/dist/cjs/caching/Arweave/index.js.map +1 -0
  24. package/dist/cjs/caching/IPFS/PinataIPFSClient.d.ts +11 -0
  25. package/dist/cjs/caching/IPFS/PinataIPFSClient.js +67 -0
  26. package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -0
  27. package/dist/cjs/caching/IPFS/index.d.ts +1 -0
  28. package/dist/cjs/caching/IPFS/index.js +5 -0
  29. package/dist/cjs/caching/IPFS/index.js.map +1 -0
  30. package/dist/cjs/caching/index.d.ts +2 -0
  31. package/dist/cjs/caching/index.js +6 -0
  32. package/dist/cjs/caching/index.js.map +1 -0
  33. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +66 -0
  34. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +377 -0
  35. package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
  36. package/dist/cjs/clients/AcrossConfigStoreClient/index.d.ts +1 -0
  37. package/dist/cjs/clients/AcrossConfigStoreClient/index.js +5 -0
  38. package/dist/cjs/clients/AcrossConfigStoreClient/index.js.map +1 -0
  39. package/dist/cjs/clients/BaseAbstractClient.d.ts +22 -0
  40. package/dist/cjs/clients/BaseAbstractClient.js +76 -0
  41. package/dist/cjs/clients/BaseAbstractClient.js.map +1 -0
  42. package/dist/cjs/clients/HubPoolClient.d.ts +111 -0
  43. package/dist/cjs/clients/HubPoolClient.js +758 -0
  44. package/dist/cjs/clients/HubPoolClient.js.map +1 -0
  45. package/dist/cjs/clients/SpokePoolClient.d.ts +117 -0
  46. package/dist/cjs/clients/SpokePoolClient.js +553 -0
  47. package/dist/cjs/clients/SpokePoolClient.js.map +1 -0
  48. package/dist/cjs/clients/index.d.ts +4 -0
  49. package/dist/cjs/clients/index.js +14 -0
  50. package/dist/cjs/clients/index.js.map +1 -0
  51. package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +20 -0
  52. package/dist/cjs/clients/mocks/MockConfigStoreClient.js +121 -0
  53. package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -0
  54. package/dist/cjs/clients/mocks/MockEvents.d.ts +27 -0
  55. package/dist/cjs/clients/mocks/MockEvents.js +117 -0
  56. package/dist/cjs/clients/mocks/MockEvents.js.map +1 -0
  57. package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +35 -0
  58. package/dist/cjs/clients/mocks/MockHubPoolClient.js +222 -0
  59. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -0
  60. package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +38 -0
  61. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +319 -0
  62. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -0
  63. package/dist/cjs/clients/mocks/index.d.ts +3 -0
  64. package/dist/cjs/clients/mocks/index.js +7 -0
  65. package/dist/cjs/clients/mocks/index.js.map +1 -0
  66. package/dist/cjs/coingecko/Coingecko.d.ts +40 -0
  67. package/dist/cjs/coingecko/Coingecko.js +277 -0
  68. package/dist/cjs/coingecko/Coingecko.js.map +1 -0
  69. package/dist/cjs/coingecko/index.d.ts +1 -0
  70. package/dist/cjs/coingecko/index.js +5 -0
  71. package/dist/cjs/coingecko/index.js.map +1 -0
  72. package/dist/cjs/constants.d.ts +18 -0
  73. package/dist/cjs/constants.js +27 -0
  74. package/dist/cjs/constants.js.map +1 -0
  75. package/dist/cjs/contracts/acrossConfigStore.d.ts +57 -0
  76. package/dist/cjs/contracts/acrossConfigStore.js +65 -0
  77. package/dist/cjs/contracts/acrossConfigStore.js.map +1 -0
  78. package/dist/cjs/contracts/hubPool.d.ts +17 -0
  79. package/dist/cjs/contracts/hubPool.js +61 -0
  80. package/dist/cjs/contracts/hubPool.js.map +1 -0
  81. package/dist/cjs/contracts/index.d.ts +2 -0
  82. package/dist/cjs/contracts/index.js +7 -0
  83. package/dist/cjs/contracts/index.js.map +1 -0
  84. package/dist/cjs/contracts/utils.d.ts +15 -0
  85. package/dist/cjs/contracts/utils.js +40 -0
  86. package/dist/cjs/contracts/utils.js.map +1 -0
  87. package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
  88. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +25 -0
  89. package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -0
  90. package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -0
  91. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +46 -0
  92. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -0
  93. package/dist/cjs/gasPriceOracle/adapters/index.d.ts +3 -0
  94. package/dist/cjs/gasPriceOracle/adapters/index.js +7 -0
  95. package/dist/cjs/gasPriceOracle/adapters/index.js.map +1 -0
  96. package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -0
  97. package/dist/cjs/gasPriceOracle/adapters/polygon.js +77 -0
  98. package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -0
  99. package/dist/cjs/gasPriceOracle/index.d.ts +2 -0
  100. package/dist/cjs/gasPriceOracle/index.js +6 -0
  101. package/dist/cjs/gasPriceOracle/index.js.map +1 -0
  102. package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -0
  103. package/dist/cjs/gasPriceOracle/oracle.js +45 -0
  104. package/dist/cjs/gasPriceOracle/oracle.js.map +1 -0
  105. package/dist/cjs/gasPriceOracle/types.d.ts +8 -0
  106. package/dist/cjs/gasPriceOracle/types.js +3 -0
  107. package/dist/cjs/gasPriceOracle/types.js.map +1 -0
  108. package/dist/cjs/gasPriceOracle/util.d.ts +2 -0
  109. package/dist/cjs/gasPriceOracle/util.js +8 -0
  110. package/dist/cjs/gasPriceOracle/util.js.map +1 -0
  111. package/dist/cjs/index.d.ts +15 -0
  112. package/dist/cjs/index.js +20 -0
  113. package/dist/cjs/index.js.map +1 -0
  114. package/dist/cjs/interfaces/Bridge.d.ts +9 -0
  115. package/dist/cjs/interfaces/Bridge.js +3 -0
  116. package/dist/cjs/interfaces/Bridge.js.map +1 -0
  117. package/dist/cjs/interfaces/CachingMechanism.d.ts +5 -0
  118. package/dist/cjs/interfaces/CachingMechanism.js +3 -0
  119. package/dist/cjs/interfaces/CachingMechanism.js.map +1 -0
  120. package/dist/cjs/interfaces/Common.d.ts +10 -0
  121. package/dist/cjs/interfaces/Common.js +3 -0
  122. package/dist/cjs/interfaces/Common.js.map +1 -0
  123. package/dist/cjs/interfaces/ConfigStore.d.ts +81 -0
  124. package/dist/cjs/interfaces/ConfigStore.js +3 -0
  125. package/dist/cjs/interfaces/ConfigStore.js.map +1 -0
  126. package/dist/cjs/interfaces/Error.d.ts +5 -0
  127. package/dist/cjs/interfaces/Error.js +3 -0
  128. package/dist/cjs/interfaces/Error.js.map +1 -0
  129. package/dist/cjs/interfaces/HubPool.d.ts +98 -0
  130. package/dist/cjs/interfaces/HubPool.js +3 -0
  131. package/dist/cjs/interfaces/HubPool.js.map +1 -0
  132. package/dist/cjs/interfaces/SpokePool.d.ts +103 -0
  133. package/dist/cjs/interfaces/SpokePool.js +16 -0
  134. package/dist/cjs/interfaces/SpokePool.js.map +1 -0
  135. package/dist/cjs/interfaces/TypedData.d.ts +19 -0
  136. package/dist/cjs/interfaces/TypedData.js +3 -0
  137. package/dist/cjs/interfaces/TypedData.js.map +1 -0
  138. package/dist/cjs/interfaces/index.d.ts +8 -0
  139. package/dist/cjs/interfaces/index.js +12 -0
  140. package/dist/cjs/interfaces/index.js.map +1 -0
  141. package/dist/cjs/lpFeeCalculator/index.d.ts +1 -0
  142. package/dist/cjs/lpFeeCalculator/index.js +5 -0
  143. package/dist/cjs/lpFeeCalculator/index.js.map +1 -0
  144. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.d.ts +19 -0
  145. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +79 -0
  146. package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
  147. package/dist/cjs/lpFeeCalculator/rateModel.d.ts +28 -0
  148. package/dist/cjs/lpFeeCalculator/rateModel.js +103 -0
  149. package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -0
  150. package/dist/cjs/merkleDistributor/MerkleDistributor.d.ts +8 -0
  151. package/dist/cjs/merkleDistributor/MerkleDistributor.js +25 -0
  152. package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -0
  153. package/dist/cjs/merkleDistributor/index.d.ts +2 -0
  154. package/dist/cjs/merkleDistributor/index.js +6 -0
  155. package/dist/cjs/merkleDistributor/index.js.map +1 -0
  156. package/dist/cjs/merkleDistributor/model/Distribution.d.ts +17 -0
  157. package/dist/cjs/merkleDistributor/model/Distribution.js +3 -0
  158. package/dist/cjs/merkleDistributor/model/Distribution.js.map +1 -0
  159. package/dist/cjs/merkleDistributor/model/index.d.ts +1 -0
  160. package/dist/cjs/merkleDistributor/model/index.js +5 -0
  161. package/dist/cjs/merkleDistributor/model/index.js.map +1 -0
  162. package/dist/cjs/package.json +1 -0
  163. package/dist/cjs/pool/TransactionManager.d.ts +12 -0
  164. package/dist/cjs/pool/TransactionManager.js +121 -0
  165. package/dist/cjs/pool/TransactionManager.js.map +1 -0
  166. package/dist/cjs/pool/index.d.ts +1 -0
  167. package/dist/cjs/pool/index.js +5 -0
  168. package/dist/cjs/pool/index.js.map +1 -0
  169. package/dist/cjs/pool/poolClient.d.ts +232 -0
  170. package/dist/cjs/pool/poolClient.js +869 -0
  171. package/dist/cjs/pool/poolClient.js.map +1 -0
  172. package/dist/cjs/priceClient/adapters/acrossApi.d.ts +13 -0
  173. package/dist/cjs/priceClient/adapters/acrossApi.js +48 -0
  174. package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -0
  175. package/dist/cjs/priceClient/adapters/baseAdapter.d.ts +17 -0
  176. package/dist/cjs/priceClient/adapters/baseAdapter.js +81 -0
  177. package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -0
  178. package/dist/cjs/priceClient/adapters/coingecko.d.ts +14 -0
  179. package/dist/cjs/priceClient/adapters/coingecko.js +75 -0
  180. package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -0
  181. package/dist/cjs/priceClient/adapters/defiLlama.d.ts +17 -0
  182. package/dist/cjs/priceClient/adapters/defiLlama.js +95 -0
  183. package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -0
  184. package/dist/cjs/priceClient/adapters/index.d.ts +3 -0
  185. package/dist/cjs/priceClient/adapters/index.js +8 -0
  186. package/dist/cjs/priceClient/adapters/index.js.map +1 -0
  187. package/dist/cjs/priceClient/index.d.ts +2 -0
  188. package/dist/cjs/priceClient/index.js +7 -0
  189. package/dist/cjs/priceClient/index.js.map +1 -0
  190. package/dist/cjs/priceClient/priceClient.d.ts +32 -0
  191. package/dist/cjs/priceClient/priceClient.js +197 -0
  192. package/dist/cjs/priceClient/priceClient.js.map +1 -0
  193. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +29 -0
  194. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +62 -0
  195. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
  196. package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
  197. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +35 -0
  198. package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -0
  199. package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +3 -0
  200. package/dist/cjs/relayFeeCalculator/chain-queries/index.js +7 -0
  201. package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -0
  202. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
  203. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js +43 -0
  204. package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
  205. package/dist/cjs/relayFeeCalculator/index.d.ts +2 -0
  206. package/dist/cjs/relayFeeCalculator/index.js +6 -0
  207. package/dist/cjs/relayFeeCalculator/index.js.map +1 -0
  208. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +231 -0
  209. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +224 -0
  210. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
  211. package/dist/cjs/typechain.d.ts +17 -0
  212. package/dist/cjs/typechain.js +20 -0
  213. package/dist/cjs/typechain.js.map +1 -0
  214. package/dist/cjs/typeguards/error.d.ts +3 -0
  215. package/dist/cjs/typeguards/error.js +11 -0
  216. package/dist/cjs/typeguards/error.js.map +1 -0
  217. package/dist/cjs/typeguards/index.d.ts +1 -0
  218. package/dist/cjs/typeguards/index.js +5 -0
  219. package/dist/cjs/typeguards/index.js.map +1 -0
  220. package/dist/cjs/utils/AddressUtils.d.ts +2 -0
  221. package/dist/cjs/utils/AddressUtils.js +24 -0
  222. package/dist/cjs/utils/AddressUtils.js.map +1 -0
  223. package/dist/cjs/utils/ArrayUtils.d.ts +12 -0
  224. package/dist/cjs/utils/ArrayUtils.js +125 -0
  225. package/dist/cjs/utils/ArrayUtils.js.map +1 -0
  226. package/dist/cjs/utils/BigNumberUtils.d.ts +8 -0
  227. package/dist/cjs/utils/BigNumberUtils.js +26 -0
  228. package/dist/cjs/utils/BigNumberUtils.js.map +1 -0
  229. package/dist/cjs/utils/BlockExplorerUtils.d.ts +3 -0
  230. package/dist/cjs/utils/BlockExplorerUtils.js +52 -0
  231. package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -0
  232. package/dist/cjs/utils/BlockUtils.d.ts +28 -0
  233. package/dist/cjs/utils/BlockUtils.js +251 -0
  234. package/dist/cjs/utils/BlockUtils.js.map +1 -0
  235. package/dist/cjs/utils/BundleUtils.d.ts +5 -0
  236. package/dist/cjs/utils/BundleUtils.js +62 -0
  237. package/dist/cjs/utils/BundleUtils.js.map +1 -0
  238. package/dist/cjs/utils/CachingUtils.d.ts +5 -0
  239. package/dist/cjs/utils/CachingUtils.js +59 -0
  240. package/dist/cjs/utils/CachingUtils.js.map +1 -0
  241. package/dist/cjs/utils/DeploymentUtils.d.ts +1 -0
  242. package/dist/cjs/utils/DeploymentUtils.js +8 -0
  243. package/dist/cjs/utils/DeploymentUtils.js.map +1 -0
  244. package/dist/cjs/utils/DepositUtils.d.ts +19 -0
  245. package/dist/cjs/utils/DepositUtils.js +107 -0
  246. package/dist/cjs/utils/DepositUtils.js.map +1 -0
  247. package/dist/cjs/utils/EventUtils.d.ts +18 -0
  248. package/dist/cjs/utils/EventUtils.js +169 -0
  249. package/dist/cjs/utils/EventUtils.js.map +1 -0
  250. package/dist/cjs/utils/FlowUtils.d.ts +7 -0
  251. package/dist/cjs/utils/FlowUtils.js +42 -0
  252. package/dist/cjs/utils/FlowUtils.js.map +1 -0
  253. package/dist/cjs/utils/FormattingUtils.d.ts +15 -0
  254. package/dist/cjs/utils/FormattingUtils.js +107 -0
  255. package/dist/cjs/utils/FormattingUtils.js.map +1 -0
  256. package/dist/cjs/utils/IPFSUtils.d.ts +4 -0
  257. package/dist/cjs/utils/IPFSUtils.js +48 -0
  258. package/dist/cjs/utils/IPFSUtils.js.map +1 -0
  259. package/dist/cjs/utils/JSONUtils.d.ts +4 -0
  260. package/dist/cjs/utils/JSONUtils.js +53 -0
  261. package/dist/cjs/utils/JSONUtils.js.map +1 -0
  262. package/dist/cjs/utils/LogUtils.d.ts +14 -0
  263. package/dist/cjs/utils/LogUtils.js +18 -0
  264. package/dist/cjs/utils/LogUtils.js.map +1 -0
  265. package/dist/cjs/utils/Multicall.d.ts +13 -0
  266. package/dist/cjs/utils/Multicall.js +73 -0
  267. package/dist/cjs/utils/Multicall.js.map +1 -0
  268. package/dist/cjs/utils/NetworkUtils.d.ts +10 -0
  269. package/dist/cjs/utils/NetworkUtils.js +70 -0
  270. package/dist/cjs/utils/NetworkUtils.js.map +1 -0
  271. package/dist/cjs/utils/NumberUtils.d.ts +2 -0
  272. package/dist/cjs/utils/NumberUtils.js +12 -0
  273. package/dist/cjs/utils/NumberUtils.js.map +1 -0
  274. package/dist/cjs/utils/ObjectUtils.d.ts +5 -0
  275. package/dist/cjs/utils/ObjectUtils.js +65 -0
  276. package/dist/cjs/utils/ObjectUtils.js.map +1 -0
  277. package/dist/cjs/utils/ReviverUtils.d.ts +3 -0
  278. package/dist/cjs/utils/ReviverUtils.js +23 -0
  279. package/dist/cjs/utils/ReviverUtils.js.map +1 -0
  280. package/dist/cjs/utils/SpokeUtils.d.ts +16 -0
  281. package/dist/cjs/utils/SpokeUtils.js +299 -0
  282. package/dist/cjs/utils/SpokeUtils.js.map +1 -0
  283. package/dist/cjs/utils/TimeUtils.d.ts +1 -0
  284. package/dist/cjs/utils/TimeUtils.js +8 -0
  285. package/dist/cjs/utils/TimeUtils.js.map +1 -0
  286. package/dist/cjs/utils/TokenUtils.d.ts +303 -0
  287. package/dist/cjs/utils/TokenUtils.js +74 -0
  288. package/dist/cjs/utils/TokenUtils.js.map +1 -0
  289. package/dist/cjs/utils/TypeGuards.d.ts +3 -0
  290. package/dist/cjs/utils/TypeGuards.js +16 -0
  291. package/dist/cjs/utils/TypeGuards.js.map +1 -0
  292. package/dist/cjs/utils/TypeUtils.d.ts +5 -0
  293. package/dist/cjs/utils/TypeUtils.js +3 -0
  294. package/dist/cjs/utils/TypeUtils.js.map +1 -0
  295. package/dist/cjs/utils/V3Utils.d.ts +4 -0
  296. package/dist/cjs/utils/V3Utils.js +15 -0
  297. package/dist/cjs/utils/V3Utils.js.map +1 -0
  298. package/dist/cjs/utils/ValidatorUtils.d.ts +2 -0
  299. package/dist/cjs/utils/ValidatorUtils.js +39 -0
  300. package/dist/cjs/utils/ValidatorUtils.js.map +1 -0
  301. package/dist/cjs/utils/abi/contracts/Multicall3.json +440 -0
  302. package/dist/cjs/utils/abi/index.d.ts +3 -0
  303. package/dist/cjs/utils/abi/index.js +31 -0
  304. package/dist/cjs/utils/abi/index.js.map +1 -0
  305. package/dist/cjs/utils/common.d.ts +79 -0
  306. package/dist/cjs/utils/common.js +220 -0
  307. package/dist/cjs/utils/common.js.map +1 -0
  308. package/dist/cjs/utils/index.d.ts +29 -0
  309. package/dist/cjs/utils/index.js +33 -0
  310. package/dist/cjs/utils/index.js.map +1 -0
  311. package/dist/esm/apiClient/abstractClient.d.ts +66 -0
  312. package/dist/esm/apiClient/abstractClient.js +31 -0
  313. package/dist/esm/apiClient/abstractClient.js.map +1 -0
  314. package/dist/esm/apiClient/index.d.ts +2 -0
  315. package/dist/esm/apiClient/index.js +3 -0
  316. package/dist/esm/apiClient/index.js.map +1 -0
  317. package/dist/esm/apiClient/mockedClient.d.ts +24 -0
  318. package/dist/esm/apiClient/mockedClient.js +69 -0
  319. package/dist/esm/apiClient/mockedClient.js.map +1 -0
  320. package/dist/esm/apiClient/productionClient.d.ts +16 -0
  321. package/dist/esm/apiClient/productionClient.js +114 -0
  322. package/dist/esm/apiClient/productionClient.js.map +1 -0
  323. package/dist/esm/apiClient/types.d.ts +44 -0
  324. package/dist/esm/apiClient/types.js +2 -0
  325. package/dist/esm/apiClient/types.js.map +1 -0
  326. package/dist/esm/caching/Arweave/ArweaveClient.d.ts +61 -0
  327. package/dist/esm/caching/Arweave/ArweaveClient.js +265 -0
  328. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -0
  329. package/dist/esm/caching/Arweave/index.d.ts +1 -0
  330. package/dist/esm/caching/Arweave/index.js +2 -0
  331. package/dist/esm/caching/Arweave/index.js.map +1 -0
  332. package/dist/esm/caching/IPFS/PinataIPFSClient.d.ts +37 -0
  333. package/dist/esm/caching/IPFS/PinataIPFSClient.js +81 -0
  334. package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -0
  335. package/dist/esm/caching/IPFS/index.d.ts +1 -0
  336. package/dist/esm/caching/IPFS/index.js +2 -0
  337. package/dist/esm/caching/IPFS/index.js.map +1 -0
  338. package/dist/esm/caching/index.d.ts +2 -0
  339. package/dist/esm/caching/index.js +3 -0
  340. package/dist/esm/caching/index.js.map +1 -0
  341. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +108 -0
  342. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +467 -0
  343. package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
  344. package/dist/esm/clients/AcrossConfigStoreClient/index.d.ts +1 -0
  345. package/dist/esm/clients/AcrossConfigStoreClient/index.js +2 -0
  346. package/dist/esm/clients/AcrossConfigStoreClient/index.js.map +1 -0
  347. package/dist/esm/clients/BaseAbstractClient.d.ts +51 -0
  348. package/dist/esm/clients/BaseAbstractClient.js +101 -0
  349. package/dist/esm/clients/BaseAbstractClient.js.map +1 -0
  350. package/dist/esm/clients/HubPoolClient.d.ts +134 -0
  351. package/dist/esm/clients/HubPoolClient.js +862 -0
  352. package/dist/esm/clients/HubPoolClient.js.map +1 -0
  353. package/dist/esm/clients/SpokePoolClient.d.ts +318 -0
  354. package/dist/esm/clients/SpokePoolClient.js +780 -0
  355. package/dist/esm/clients/SpokePoolClient.js.map +1 -0
  356. package/dist/esm/clients/index.d.ts +4 -0
  357. package/dist/esm/clients/index.js +6 -0
  358. package/dist/esm/clients/index.js.map +1 -0
  359. package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +20 -0
  360. package/dist/esm/clients/mocks/MockConfigStoreClient.js +122 -0
  361. package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -0
  362. package/dist/esm/clients/mocks/MockEvents.d.ts +34 -0
  363. package/dist/esm/clients/mocks/MockEvents.js +126 -0
  364. package/dist/esm/clients/mocks/MockEvents.js.map +1 -0
  365. package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +35 -0
  366. package/dist/esm/clients/mocks/MockHubPoolClient.js +223 -0
  367. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -0
  368. package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +38 -0
  369. package/dist/esm/clients/mocks/MockSpokePoolClient.js +322 -0
  370. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -0
  371. package/dist/esm/clients/mocks/index.d.ts +3 -0
  372. package/dist/esm/clients/mocks/index.js +4 -0
  373. package/dist/esm/clients/mocks/index.js.map +1 -0
  374. package/dist/esm/coingecko/Coingecko.d.ts +40 -0
  375. package/dist/esm/coingecko/Coingecko.js +283 -0
  376. package/dist/esm/coingecko/Coingecko.js.map +1 -0
  377. package/dist/esm/coingecko/index.d.ts +1 -0
  378. package/dist/esm/coingecko/index.js +2 -0
  379. package/dist/esm/coingecko/index.js.map +1 -0
  380. package/dist/esm/constants.d.ts +29 -0
  381. package/dist/esm/constants.js +34 -0
  382. package/dist/esm/constants.js.map +1 -0
  383. package/dist/esm/contracts/acrossConfigStore.d.ts +57 -0
  384. package/dist/esm/contracts/acrossConfigStore.js +62 -0
  385. package/dist/esm/contracts/acrossConfigStore.js.map +1 -0
  386. package/dist/esm/contracts/hubPool.d.ts +17 -0
  387. package/dist/esm/contracts/hubPool.js +55 -0
  388. package/dist/esm/contracts/hubPool.js.map +1 -0
  389. package/dist/esm/contracts/index.d.ts +2 -0
  390. package/dist/esm/contracts/index.js +5 -0
  391. package/dist/esm/contracts/index.js.map +1 -0
  392. package/dist/esm/contracts/utils.d.ts +23 -0
  393. package/dist/esm/contracts/utils.js +38 -0
  394. package/dist/esm/contracts/utils.js.map +1 -0
  395. package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
  396. package/dist/esm/gasPriceOracle/adapters/arbitrum.js +25 -0
  397. package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -0
  398. package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -0
  399. package/dist/esm/gasPriceOracle/adapters/ethereum.js +41 -0
  400. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -0
  401. package/dist/esm/gasPriceOracle/adapters/index.d.ts +3 -0
  402. package/dist/esm/gasPriceOracle/adapters/index.js +4 -0
  403. package/dist/esm/gasPriceOracle/adapters/index.js.map +1 -0
  404. package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +3 -0
  405. package/dist/esm/gasPriceOracle/adapters/polygon.js +78 -0
  406. package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -0
  407. package/dist/esm/gasPriceOracle/index.d.ts +2 -0
  408. package/dist/esm/gasPriceOracle/index.js +2 -0
  409. package/dist/esm/gasPriceOracle/index.js.map +1 -0
  410. package/dist/esm/gasPriceOracle/oracle.d.ts +10 -0
  411. package/dist/esm/gasPriceOracle/oracle.js +48 -0
  412. package/dist/esm/gasPriceOracle/oracle.js.map +1 -0
  413. package/dist/esm/gasPriceOracle/types.d.ts +8 -0
  414. package/dist/esm/gasPriceOracle/types.js +2 -0
  415. package/dist/esm/gasPriceOracle/types.js.map +1 -0
  416. package/dist/esm/gasPriceOracle/util.d.ts +2 -0
  417. package/dist/esm/gasPriceOracle/util.js +4 -0
  418. package/dist/esm/gasPriceOracle/util.js.map +1 -0
  419. package/dist/esm/index.d.ts +15 -0
  420. package/dist/esm/index.js +31 -0
  421. package/dist/esm/index.js.map +1 -0
  422. package/dist/esm/interfaces/Bridge.d.ts +9 -0
  423. package/dist/esm/interfaces/Bridge.js +2 -0
  424. package/dist/esm/interfaces/Bridge.js.map +1 -0
  425. package/dist/esm/interfaces/CachingMechanism.d.ts +26 -0
  426. package/dist/esm/interfaces/CachingMechanism.js +2 -0
  427. package/dist/esm/interfaces/CachingMechanism.js.map +1 -0
  428. package/dist/esm/interfaces/Common.d.ts +10 -0
  429. package/dist/esm/interfaces/Common.js +2 -0
  430. package/dist/esm/interfaces/Common.js.map +1 -0
  431. package/dist/esm/interfaces/ConfigStore.d.ts +157 -0
  432. package/dist/esm/interfaces/ConfigStore.js +2 -0
  433. package/dist/esm/interfaces/ConfigStore.js.map +1 -0
  434. package/dist/esm/interfaces/Error.d.ts +5 -0
  435. package/dist/esm/interfaces/Error.js +2 -0
  436. package/dist/esm/interfaces/Error.js.map +1 -0
  437. package/dist/esm/interfaces/HubPool.d.ts +98 -0
  438. package/dist/esm/interfaces/HubPool.js +2 -0
  439. package/dist/esm/interfaces/HubPool.js.map +1 -0
  440. package/dist/esm/interfaces/SpokePool.d.ts +103 -0
  441. package/dist/esm/interfaces/SpokePool.js +13 -0
  442. package/dist/esm/interfaces/SpokePool.js.map +1 -0
  443. package/dist/esm/interfaces/TypedData.d.ts +19 -0
  444. package/dist/esm/interfaces/TypedData.js +2 -0
  445. package/dist/esm/interfaces/TypedData.js.map +1 -0
  446. package/dist/esm/interfaces/index.d.ts +8 -0
  447. package/dist/esm/interfaces/index.js +9 -0
  448. package/dist/esm/interfaces/index.js.map +1 -0
  449. package/dist/esm/lpFeeCalculator/index.d.ts +1 -0
  450. package/dist/esm/lpFeeCalculator/index.js +2 -0
  451. package/dist/esm/lpFeeCalculator/index.js.map +1 -0
  452. package/dist/esm/lpFeeCalculator/lpFeeCalculator.d.ts +66 -0
  453. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +129 -0
  454. package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
  455. package/dist/esm/lpFeeCalculator/rateModel.d.ts +45 -0
  456. package/dist/esm/lpFeeCalculator/rateModel.js +138 -0
  457. package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -0
  458. package/dist/esm/merkleDistributor/MerkleDistributor.d.ts +20 -0
  459. package/dist/esm/merkleDistributor/MerkleDistributor.js +34 -0
  460. package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -0
  461. package/dist/esm/merkleDistributor/index.d.ts +2 -0
  462. package/dist/esm/merkleDistributor/index.js +3 -0
  463. package/dist/esm/merkleDistributor/index.js.map +1 -0
  464. package/dist/esm/merkleDistributor/model/Distribution.d.ts +17 -0
  465. package/dist/esm/merkleDistributor/model/Distribution.js +2 -0
  466. package/dist/esm/merkleDistributor/model/Distribution.js.map +1 -0
  467. package/dist/esm/merkleDistributor/model/index.d.ts +1 -0
  468. package/dist/esm/merkleDistributor/model/index.js +2 -0
  469. package/dist/esm/merkleDistributor/model/index.js.map +1 -0
  470. package/dist/esm/package.json +1 -0
  471. package/dist/esm/pool/TransactionManager.d.ts +12 -0
  472. package/dist/esm/pool/TransactionManager.js +122 -0
  473. package/dist/esm/pool/TransactionManager.js.map +1 -0
  474. package/dist/esm/pool/index.d.ts +1 -0
  475. package/dist/esm/pool/index.js +2 -0
  476. package/dist/esm/pool/index.js.map +1 -0
  477. package/dist/esm/pool/poolClient.d.ts +242 -0
  478. package/dist/esm/pool/poolClient.js +899 -0
  479. package/dist/esm/pool/poolClient.js.map +1 -0
  480. package/dist/esm/priceClient/adapters/acrossApi.d.ts +14 -0
  481. package/dist/esm/priceClient/adapters/acrossApi.js +49 -0
  482. package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -0
  483. package/dist/esm/priceClient/adapters/baseAdapter.d.ts +17 -0
  484. package/dist/esm/priceClient/adapters/baseAdapter.js +78 -0
  485. package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -0
  486. package/dist/esm/priceClient/adapters/coingecko.d.ts +14 -0
  487. package/dist/esm/priceClient/adapters/coingecko.js +73 -0
  488. package/dist/esm/priceClient/adapters/coingecko.js.map +1 -0
  489. package/dist/esm/priceClient/adapters/defiLlama.d.ts +17 -0
  490. package/dist/esm/priceClient/adapters/defiLlama.js +93 -0
  491. package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -0
  492. package/dist/esm/priceClient/adapters/index.d.ts +3 -0
  493. package/dist/esm/priceClient/adapters/index.js +7 -0
  494. package/dist/esm/priceClient/adapters/index.js.map +1 -0
  495. package/dist/esm/priceClient/index.d.ts +2 -0
  496. package/dist/esm/priceClient/index.js +4 -0
  497. package/dist/esm/priceClient/index.js.map +1 -0
  498. package/dist/esm/priceClient/priceClient.d.ts +32 -0
  499. package/dist/esm/priceClient/priceClient.js +206 -0
  500. package/dist/esm/priceClient/priceClient.js.map +1 -0
  501. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +61 -0
  502. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +91 -0
  503. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
  504. package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
  505. package/dist/esm/relayFeeCalculator/chain-queries/factory.js +38 -0
  506. package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -0
  507. package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +3 -0
  508. package/dist/esm/relayFeeCalculator/chain-queries/index.js +4 -0
  509. package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -0
  510. package/dist/esm/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
  511. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js +40 -0
  512. package/dist/esm/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
  513. package/dist/esm/relayFeeCalculator/index.d.ts +2 -0
  514. package/dist/esm/relayFeeCalculator/index.js +3 -0
  515. package/dist/esm/relayFeeCalculator/index.js.map +1 -0
  516. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +282 -0
  517. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +298 -0
  518. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
  519. package/dist/esm/typechain.d.ts +22 -0
  520. package/dist/esm/typechain.js +9 -0
  521. package/dist/esm/typechain.js.map +1 -0
  522. package/dist/esm/typeguards/error.d.ts +3 -0
  523. package/dist/esm/typeguards/error.js +6 -0
  524. package/dist/esm/typeguards/error.js.map +1 -0
  525. package/dist/esm/typeguards/index.d.ts +1 -0
  526. package/dist/esm/typeguards/index.js +2 -0
  527. package/dist/esm/typeguards/index.js.map +1 -0
  528. package/dist/esm/utils/AddressUtils.d.ts +8 -0
  529. package/dist/esm/utils/AddressUtils.js +28 -0
  530. package/dist/esm/utils/AddressUtils.js.map +1 -0
  531. package/dist/esm/utils/ArrayUtils.d.ts +98 -0
  532. package/dist/esm/utils/ArrayUtils.js +196 -0
  533. package/dist/esm/utils/ArrayUtils.js.map +1 -0
  534. package/dist/esm/utils/BigNumberUtils.d.ts +31 -0
  535. package/dist/esm/utils/BigNumberUtils.js +52 -0
  536. package/dist/esm/utils/BigNumberUtils.js.map +1 -0
  537. package/dist/esm/utils/BlockExplorerUtils.d.ts +21 -0
  538. package/dist/esm/utils/BlockExplorerUtils.js +91 -0
  539. package/dist/esm/utils/BlockExplorerUtils.js.map +1 -0
  540. package/dist/esm/utils/BlockUtils.d.ts +46 -0
  541. package/dist/esm/utils/BlockUtils.js +294 -0
  542. package/dist/esm/utils/BlockUtils.js.map +1 -0
  543. package/dist/esm/utils/BundleUtils.d.ts +29 -0
  544. package/dist/esm/utils/BundleUtils.js +89 -0
  545. package/dist/esm/utils/BundleUtils.js.map +1 -0
  546. package/dist/esm/utils/CachingUtils.d.ts +17 -0
  547. package/dist/esm/utils/CachingUtils.js +66 -0
  548. package/dist/esm/utils/CachingUtils.js.map +1 -0
  549. package/dist/esm/utils/DeploymentUtils.d.ts +1 -0
  550. package/dist/esm/utils/DeploymentUtils.js +2 -0
  551. package/dist/esm/utils/DeploymentUtils.js.map +1 -0
  552. package/dist/esm/utils/DepositUtils.d.ts +46 -0
  553. package/dist/esm/utils/DepositUtils.js +138 -0
  554. package/dist/esm/utils/DepositUtils.js.map +1 -0
  555. package/dist/esm/utils/EventUtils.d.ts +32 -0
  556. package/dist/esm/utils/EventUtils.js +194 -0
  557. package/dist/esm/utils/EventUtils.js.map +1 -0
  558. package/dist/esm/utils/FlowUtils.d.ts +8 -0
  559. package/dist/esm/utils/FlowUtils.js +39 -0
  560. package/dist/esm/utils/FlowUtils.js.map +1 -0
  561. package/dist/esm/utils/FormattingUtils.d.ts +61 -0
  562. package/dist/esm/utils/FormattingUtils.js +167 -0
  563. package/dist/esm/utils/FormattingUtils.js.map +1 -0
  564. package/dist/esm/utils/IPFSUtils.d.ts +24 -0
  565. package/dist/esm/utils/IPFSUtils.js +65 -0
  566. package/dist/esm/utils/IPFSUtils.js.map +1 -0
  567. package/dist/esm/utils/JSONUtils.d.ts +31 -0
  568. package/dist/esm/utils/JSONUtils.js +82 -0
  569. package/dist/esm/utils/JSONUtils.js.map +1 -0
  570. package/dist/esm/utils/LogUtils.d.ts +20 -0
  571. package/dist/esm/utils/LogUtils.js +19 -0
  572. package/dist/esm/utils/LogUtils.js.map +1 -0
  573. package/dist/esm/utils/Multicall.d.ts +13 -0
  574. package/dist/esm/utils/Multicall.js +70 -0
  575. package/dist/esm/utils/Multicall.js.map +1 -0
  576. package/dist/esm/utils/NetworkUtils.d.ts +60 -0
  577. package/dist/esm/utils/NetworkUtils.js +109 -0
  578. package/dist/esm/utils/NetworkUtils.js.map +1 -0
  579. package/dist/esm/utils/NumberUtils.d.ts +12 -0
  580. package/dist/esm/utils/NumberUtils.js +17 -0
  581. package/dist/esm/utils/NumberUtils.js.map +1 -0
  582. package/dist/esm/utils/ObjectUtils.d.ts +10 -0
  583. package/dist/esm/utils/ObjectUtils.js +72 -0
  584. package/dist/esm/utils/ObjectUtils.js.map +1 -0
  585. package/dist/esm/utils/ReviverUtils.d.ts +15 -0
  586. package/dist/esm/utils/ReviverUtils.js +33 -0
  587. package/dist/esm/utils/ReviverUtils.js.map +1 -0
  588. package/dist/esm/utils/SpokeUtils.d.ts +64 -0
  589. package/dist/esm/utils/SpokeUtils.js +370 -0
  590. package/dist/esm/utils/SpokeUtils.js.map +1 -0
  591. package/dist/esm/utils/TimeUtils.d.ts +5 -0
  592. package/dist/esm/utils/TimeUtils.js +8 -0
  593. package/dist/esm/utils/TimeUtils.js.map +1 -0
  594. package/dist/esm/utils/TokenUtils.d.ts +325 -0
  595. package/dist/esm/utils/TokenUtils.js +88 -0
  596. package/dist/esm/utils/TokenUtils.js.map +1 -0
  597. package/dist/esm/utils/TypeGuards.d.ts +3 -0
  598. package/dist/esm/utils/TypeGuards.js +10 -0
  599. package/dist/esm/utils/TypeGuards.js.map +1 -0
  600. package/dist/esm/utils/TypeUtils.d.ts +5 -0
  601. package/dist/esm/utils/TypeUtils.js +2 -0
  602. package/dist/esm/utils/TypeUtils.js.map +1 -0
  603. package/dist/esm/utils/V3Utils.d.ts +4 -0
  604. package/dist/esm/utils/V3Utils.js +10 -0
  605. package/dist/esm/utils/V3Utils.js.map +1 -0
  606. package/dist/esm/utils/ValidatorUtils.d.ts +2 -0
  607. package/dist/esm/utils/ValidatorUtils.js +35 -0
  608. package/dist/esm/utils/ValidatorUtils.js.map +1 -0
  609. package/dist/esm/utils/abi/contracts/Multicall3.json +440 -0
  610. package/dist/esm/utils/abi/index.d.ts +18 -0
  611. package/dist/esm/utils/abi/index.js +41 -0
  612. package/dist/esm/utils/abi/index.js.map +1 -0
  613. package/dist/esm/utils/common.d.ts +204 -0
  614. package/dist/esm/utils/common.js +325 -0
  615. package/dist/esm/utils/common.js.map +1 -0
  616. package/dist/esm/utils/index.d.ts +29 -0
  617. package/dist/esm/utils/index.js +30 -0
  618. package/dist/esm/utils/index.js.map +1 -0
  619. package/dist/types/apiClient/abstractClient.d.ts +67 -0
  620. package/dist/types/apiClient/abstractClient.d.ts.map +1 -0
  621. package/dist/types/apiClient/index.d.ts +3 -0
  622. package/dist/types/apiClient/index.d.ts.map +1 -0
  623. package/dist/types/apiClient/mockedClient.d.ts +25 -0
  624. package/dist/types/apiClient/mockedClient.d.ts.map +1 -0
  625. package/dist/types/apiClient/productionClient.d.ts +17 -0
  626. package/dist/types/apiClient/productionClient.d.ts.map +1 -0
  627. package/dist/types/apiClient/types.d.ts +45 -0
  628. package/dist/types/apiClient/types.d.ts.map +1 -0
  629. package/dist/types/caching/Arweave/ArweaveClient.d.ts +62 -0
  630. package/dist/types/caching/Arweave/ArweaveClient.d.ts.map +1 -0
  631. package/dist/types/caching/Arweave/index.d.ts +2 -0
  632. package/dist/types/caching/Arweave/index.d.ts.map +1 -0
  633. package/dist/types/caching/IPFS/PinataIPFSClient.d.ts +38 -0
  634. package/dist/types/caching/IPFS/PinataIPFSClient.d.ts.map +1 -0
  635. package/dist/types/caching/IPFS/index.d.ts +2 -0
  636. package/dist/types/caching/IPFS/index.d.ts.map +1 -0
  637. package/dist/types/caching/index.d.ts +3 -0
  638. package/dist/types/caching/index.d.ts.map +1 -0
  639. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +109 -0
  640. package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -0
  641. package/dist/types/clients/AcrossConfigStoreClient/index.d.ts +2 -0
  642. package/dist/types/clients/AcrossConfigStoreClient/index.d.ts.map +1 -0
  643. package/dist/types/clients/BaseAbstractClient.d.ts +52 -0
  644. package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -0
  645. package/dist/types/clients/HubPoolClient.d.ts +135 -0
  646. package/dist/types/clients/HubPoolClient.d.ts.map +1 -0
  647. package/dist/types/clients/SpokePoolClient.d.ts +319 -0
  648. package/dist/types/clients/SpokePoolClient.d.ts.map +1 -0
  649. package/dist/types/clients/index.d.ts +5 -0
  650. package/dist/types/clients/index.d.ts.map +1 -0
  651. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +21 -0
  652. package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -0
  653. package/dist/types/clients/mocks/MockEvents.d.ts +35 -0
  654. package/dist/types/clients/mocks/MockEvents.d.ts.map +1 -0
  655. package/dist/types/clients/mocks/MockHubPoolClient.d.ts +36 -0
  656. package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -0
  657. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +39 -0
  658. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -0
  659. package/dist/types/clients/mocks/index.d.ts +4 -0
  660. package/dist/types/clients/mocks/index.d.ts.map +1 -0
  661. package/dist/types/coingecko/Coingecko.d.ts +41 -0
  662. package/dist/types/coingecko/Coingecko.d.ts.map +1 -0
  663. package/dist/types/coingecko/index.d.ts +2 -0
  664. package/dist/types/coingecko/index.d.ts.map +1 -0
  665. package/dist/types/constants.d.ts +30 -0
  666. package/dist/types/constants.d.ts.map +1 -0
  667. package/dist/types/contracts/acrossConfigStore.d.ts +58 -0
  668. package/dist/types/contracts/acrossConfigStore.d.ts.map +1 -0
  669. package/dist/types/contracts/hubPool.d.ts +18 -0
  670. package/dist/types/contracts/hubPool.d.ts.map +1 -0
  671. package/dist/types/contracts/index.d.ts +3 -0
  672. package/dist/types/contracts/index.d.ts.map +1 -0
  673. package/dist/types/contracts/utils.d.ts +24 -0
  674. package/dist/types/contracts/utils.d.ts.map +1 -0
  675. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +4 -0
  676. package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -0
  677. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +5 -0
  678. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -0
  679. package/dist/types/gasPriceOracle/adapters/index.d.ts +4 -0
  680. package/dist/types/gasPriceOracle/adapters/index.d.ts.map +1 -0
  681. package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -0
  682. package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -0
  683. package/dist/types/gasPriceOracle/index.d.ts +3 -0
  684. package/dist/types/gasPriceOracle/index.d.ts.map +1 -0
  685. package/dist/types/gasPriceOracle/oracle.d.ts +11 -0
  686. package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -0
  687. package/dist/types/gasPriceOracle/types.d.ts +9 -0
  688. package/dist/types/gasPriceOracle/types.d.ts.map +1 -0
  689. package/dist/types/gasPriceOracle/util.d.ts +3 -0
  690. package/dist/types/gasPriceOracle/util.d.ts.map +1 -0
  691. package/dist/types/index.d.ts +16 -0
  692. package/dist/types/index.d.ts.map +1 -0
  693. package/dist/types/interfaces/Bridge.d.ts +10 -0
  694. package/dist/types/interfaces/Bridge.d.ts.map +1 -0
  695. package/dist/types/interfaces/CachingMechanism.d.ts +27 -0
  696. package/dist/types/interfaces/CachingMechanism.d.ts.map +1 -0
  697. package/dist/types/interfaces/Common.d.ts +11 -0
  698. package/dist/types/interfaces/Common.d.ts.map +1 -0
  699. package/dist/types/interfaces/ConfigStore.d.ts +158 -0
  700. package/dist/types/interfaces/ConfigStore.d.ts.map +1 -0
  701. package/dist/types/interfaces/Error.d.ts +6 -0
  702. package/dist/types/interfaces/Error.d.ts.map +1 -0
  703. package/dist/types/interfaces/HubPool.d.ts +99 -0
  704. package/dist/types/interfaces/HubPool.d.ts.map +1 -0
  705. package/dist/types/interfaces/SpokePool.d.ts +104 -0
  706. package/dist/types/interfaces/SpokePool.d.ts.map +1 -0
  707. package/dist/types/interfaces/TypedData.d.ts +20 -0
  708. package/dist/types/interfaces/TypedData.d.ts.map +1 -0
  709. package/dist/types/interfaces/index.d.ts +9 -0
  710. package/dist/types/interfaces/index.d.ts.map +1 -0
  711. package/dist/types/lpFeeCalculator/index.d.ts +2 -0
  712. package/dist/types/lpFeeCalculator/index.d.ts.map +1 -0
  713. package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts +67 -0
  714. package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts.map +1 -0
  715. package/dist/types/lpFeeCalculator/rateModel.d.ts +46 -0
  716. package/dist/types/lpFeeCalculator/rateModel.d.ts.map +1 -0
  717. package/dist/types/merkleDistributor/MerkleDistributor.d.ts +21 -0
  718. package/dist/types/merkleDistributor/MerkleDistributor.d.ts.map +1 -0
  719. package/dist/types/merkleDistributor/index.d.ts +3 -0
  720. package/dist/types/merkleDistributor/index.d.ts.map +1 -0
  721. package/dist/types/merkleDistributor/model/Distribution.d.ts +18 -0
  722. package/dist/types/merkleDistributor/model/Distribution.d.ts.map +1 -0
  723. package/dist/types/merkleDistributor/model/index.d.ts +2 -0
  724. package/dist/types/merkleDistributor/model/index.d.ts.map +1 -0
  725. package/dist/types/pool/TransactionManager.d.ts +13 -0
  726. package/dist/types/pool/TransactionManager.d.ts.map +1 -0
  727. package/dist/types/pool/index.d.ts +2 -0
  728. package/dist/types/pool/index.d.ts.map +1 -0
  729. package/dist/types/pool/poolClient.d.ts +243 -0
  730. package/dist/types/pool/poolClient.d.ts.map +1 -0
  731. package/dist/types/priceClient/adapters/acrossApi.d.ts +15 -0
  732. package/dist/types/priceClient/adapters/acrossApi.d.ts.map +1 -0
  733. package/dist/types/priceClient/adapters/baseAdapter.d.ts +18 -0
  734. package/dist/types/priceClient/adapters/baseAdapter.d.ts.map +1 -0
  735. package/dist/types/priceClient/adapters/coingecko.d.ts +15 -0
  736. package/dist/types/priceClient/adapters/coingecko.d.ts.map +1 -0
  737. package/dist/types/priceClient/adapters/defiLlama.d.ts +18 -0
  738. package/dist/types/priceClient/adapters/defiLlama.d.ts.map +1 -0
  739. package/dist/types/priceClient/adapters/index.d.ts +4 -0
  740. package/dist/types/priceClient/adapters/index.d.ts.map +1 -0
  741. package/dist/types/priceClient/index.d.ts +3 -0
  742. package/dist/types/priceClient/index.d.ts.map +1 -0
  743. package/dist/types/priceClient/priceClient.d.ts +33 -0
  744. package/dist/types/priceClient/priceClient.d.ts.map +1 -0
  745. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +62 -0
  746. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -0
  747. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +152 -0
  748. package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -0
  749. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +4 -0
  750. package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -0
  751. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts +153 -0
  752. package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts.map +1 -0
  753. package/dist/types/relayFeeCalculator/index.d.ts +3 -0
  754. package/dist/types/relayFeeCalculator/index.d.ts.map +1 -0
  755. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +283 -0
  756. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -0
  757. package/dist/types/typechain.d.ts +23 -0
  758. package/dist/types/typechain.d.ts.map +1 -0
  759. package/dist/types/typeguards/error.d.ts +4 -0
  760. package/dist/types/typeguards/error.d.ts.map +1 -0
  761. package/dist/types/typeguards/index.d.ts +2 -0
  762. package/dist/types/typeguards/index.d.ts.map +1 -0
  763. package/dist/types/utils/AddressUtils.d.ts +9 -0
  764. package/dist/types/utils/AddressUtils.d.ts.map +1 -0
  765. package/dist/types/utils/ArrayUtils.d.ts +99 -0
  766. package/dist/types/utils/ArrayUtils.d.ts.map +1 -0
  767. package/dist/types/utils/BigNumberUtils.d.ts +32 -0
  768. package/dist/types/utils/BigNumberUtils.d.ts.map +1 -0
  769. package/dist/types/utils/BlockExplorerUtils.d.ts +22 -0
  770. package/dist/types/utils/BlockExplorerUtils.d.ts.map +1 -0
  771. package/dist/types/utils/BlockUtils.d.ts +47 -0
  772. package/dist/types/utils/BlockUtils.d.ts.map +1 -0
  773. package/dist/types/utils/BundleUtils.d.ts +30 -0
  774. package/dist/types/utils/BundleUtils.d.ts.map +1 -0
  775. package/dist/types/utils/CachingUtils.d.ts +18 -0
  776. package/dist/types/utils/CachingUtils.d.ts.map +1 -0
  777. package/dist/types/utils/DeploymentUtils.d.ts +2 -0
  778. package/dist/types/utils/DeploymentUtils.d.ts.map +1 -0
  779. package/dist/types/utils/DepositUtils.d.ts +47 -0
  780. package/dist/types/utils/DepositUtils.d.ts.map +1 -0
  781. package/dist/types/utils/EventUtils.d.ts +33 -0
  782. package/dist/types/utils/EventUtils.d.ts.map +1 -0
  783. package/dist/types/utils/FlowUtils.d.ts +9 -0
  784. package/dist/types/utils/FlowUtils.d.ts.map +1 -0
  785. package/dist/types/utils/FormattingUtils.d.ts +62 -0
  786. package/dist/types/utils/FormattingUtils.d.ts.map +1 -0
  787. package/dist/types/utils/IPFSUtils.d.ts +25 -0
  788. package/dist/types/utils/IPFSUtils.d.ts.map +1 -0
  789. package/dist/types/utils/JSONUtils.d.ts +32 -0
  790. package/dist/types/utils/JSONUtils.d.ts.map +1 -0
  791. package/dist/types/utils/LogUtils.d.ts +21 -0
  792. package/dist/types/utils/LogUtils.d.ts.map +1 -0
  793. package/dist/types/utils/Multicall.d.ts +14 -0
  794. package/dist/types/utils/Multicall.d.ts.map +1 -0
  795. package/dist/types/utils/NetworkUtils.d.ts +61 -0
  796. package/dist/types/utils/NetworkUtils.d.ts.map +1 -0
  797. package/dist/types/utils/NumberUtils.d.ts +13 -0
  798. package/dist/types/utils/NumberUtils.d.ts.map +1 -0
  799. package/dist/types/utils/ObjectUtils.d.ts +11 -0
  800. package/dist/types/utils/ObjectUtils.d.ts.map +1 -0
  801. package/dist/types/utils/ReviverUtils.d.ts +16 -0
  802. package/dist/types/utils/ReviverUtils.d.ts.map +1 -0
  803. package/dist/types/utils/SpokeUtils.d.ts +65 -0
  804. package/dist/types/utils/SpokeUtils.d.ts.map +1 -0
  805. package/dist/types/utils/TimeUtils.d.ts +6 -0
  806. package/dist/types/utils/TimeUtils.d.ts.map +1 -0
  807. package/dist/types/utils/TokenUtils.d.ts +326 -0
  808. package/dist/types/utils/TokenUtils.d.ts.map +1 -0
  809. package/dist/types/utils/TypeGuards.d.ts +4 -0
  810. package/dist/types/utils/TypeGuards.d.ts.map +1 -0
  811. package/dist/types/utils/TypeUtils.d.ts +6 -0
  812. package/dist/types/utils/TypeUtils.d.ts.map +1 -0
  813. package/dist/types/utils/V3Utils.d.ts +5 -0
  814. package/dist/types/utils/V3Utils.d.ts.map +1 -0
  815. package/dist/types/utils/ValidatorUtils.d.ts +3 -0
  816. package/dist/types/utils/ValidatorUtils.d.ts.map +1 -0
  817. package/dist/types/utils/abi/index.d.ts +19 -0
  818. package/dist/types/utils/abi/index.d.ts.map +1 -0
  819. package/dist/types/utils/common.d.ts +205 -0
  820. package/dist/types/utils/common.d.ts.map +1 -0
  821. package/dist/types/utils/index.d.ts +30 -0
  822. package/dist/types/utils/index.d.ts.map +1 -0
  823. package/package.json +144 -0
  824. package/src/apiClient/abstractClient.ts +95 -0
  825. package/src/apiClient/index.ts +2 -0
  826. package/src/apiClient/mockedClient.ts +90 -0
  827. package/src/apiClient/productionClient.ts +98 -0
  828. package/src/apiClient/types.ts +49 -0
  829. package/src/caching/Arweave/ArweaveClient.ts +238 -0
  830. package/src/caching/Arweave/index.ts +1 -0
  831. package/src/caching/IPFS/PinataIPFSClient.ts +92 -0
  832. package/src/caching/IPFS/index.ts +1 -0
  833. package/src/caching/index.ts +2 -0
  834. package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +526 -0
  835. package/src/clients/AcrossConfigStoreClient/index.ts +1 -0
  836. package/src/clients/BaseAbstractClient.ts +94 -0
  837. package/src/clients/HubPoolClient.ts +1010 -0
  838. package/src/clients/SpokePoolClient.ts +894 -0
  839. package/src/clients/index.ts +9 -0
  840. package/src/clients/mocks/MockConfigStoreClient.ts +129 -0
  841. package/src/clients/mocks/MockEvents.ts +156 -0
  842. package/src/clients/mocks/MockHubPoolClient.ts +257 -0
  843. package/src/clients/mocks/MockSpokePoolClient.ts +341 -0
  844. package/src/clients/mocks/index.ts +3 -0
  845. package/src/coingecko/Coingecko.ts +277 -0
  846. package/src/coingecko/index.ts +1 -0
  847. package/src/constants.ts +53 -0
  848. package/src/contracts/acrossConfigStore.ts +49 -0
  849. package/src/contracts/hubPool.ts +90 -0
  850. package/src/contracts/index.ts +2 -0
  851. package/src/contracts/utils.ts +56 -0
  852. package/src/gasPriceOracle/adapters/arbitrum.ts +21 -0
  853. package/src/gasPriceOracle/adapters/ethereum.ts +27 -0
  854. package/src/gasPriceOracle/adapters/index.ts +3 -0
  855. package/src/gasPriceOracle/adapters/polygon.ts +77 -0
  856. package/src/gasPriceOracle/index.ts +2 -0
  857. package/src/gasPriceOracle/oracle.ts +42 -0
  858. package/src/gasPriceOracle/types.ts +10 -0
  859. package/src/gasPriceOracle/util.ts +5 -0
  860. package/src/index.ts +15 -0
  861. package/src/interfaces/Bridge.ts +10 -0
  862. package/src/interfaces/CachingMechanism.ts +37 -0
  863. package/src/interfaces/Common.ts +12 -0
  864. package/src/interfaces/ConfigStore.ts +173 -0
  865. package/src/interfaces/Error.ts +5 -0
  866. package/src/interfaces/HubPool.ts +118 -0
  867. package/src/interfaces/SpokePool.ts +119 -0
  868. package/src/interfaces/TypedData.ts +21 -0
  869. package/src/interfaces/index.ts +8 -0
  870. package/src/lpFeeCalculator/README.md +27 -0
  871. package/src/lpFeeCalculator/index.ts +1 -0
  872. package/src/lpFeeCalculator/lpFeeCalculator.ts +169 -0
  873. package/src/lpFeeCalculator/rateModel.ts +183 -0
  874. package/src/merkleDistributor/MerkleDistributor.ts +37 -0
  875. package/src/merkleDistributor/README.md +30 -0
  876. package/src/merkleDistributor/index.ts +2 -0
  877. package/src/merkleDistributor/model/Distribution.ts +17 -0
  878. package/src/merkleDistributor/model/index.ts +1 -0
  879. package/src/pool/TransactionManager.ts +73 -0
  880. package/src/pool/index.ts +1 -0
  881. package/src/pool/poolClient.ts +840 -0
  882. package/src/priceClient/README.md +36 -0
  883. package/src/priceClient/adapters/acrossApi.ts +44 -0
  884. package/src/priceClient/adapters/baseAdapter.ts +65 -0
  885. package/src/priceClient/adapters/coingecko.ts +67 -0
  886. package/src/priceClient/adapters/defiLlama.ts +96 -0
  887. package/src/priceClient/adapters/index.ts +3 -0
  888. package/src/priceClient/index.ts +2 -0
  889. package/src/priceClient/priceClient.ts +192 -0
  890. package/src/relayFeeCalculator/README.md +34 -0
  891. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +98 -0
  892. package/src/relayFeeCalculator/chain-queries/factory.ts +58 -0
  893. package/src/relayFeeCalculator/chain-queries/index.ts +3 -0
  894. package/src/relayFeeCalculator/chain-queries/polygon.ts +45 -0
  895. package/src/relayFeeCalculator/index.ts +2 -0
  896. package/src/relayFeeCalculator/relayFeeCalculator.ts +410 -0
  897. package/src/typechain.ts +46 -0
  898. package/src/typeguards/error.ts +7 -0
  899. package/src/typeguards/index.ts +1 -0
  900. package/src/utils/AddressUtils.ts +18 -0
  901. package/src/utils/ArrayUtils.ts +170 -0
  902. package/src/utils/BigNumberUtils.ts +58 -0
  903. package/src/utils/BlockExplorerUtils.ts +91 -0
  904. package/src/utils/BlockUtils.ts +265 -0
  905. package/src/utils/BundleUtils.ts +109 -0
  906. package/src/utils/CachingUtils.ts +56 -0
  907. package/src/utils/DeploymentUtils.ts +5 -0
  908. package/src/utils/DepositUtils.ts +144 -0
  909. package/src/utils/EventUtils.ts +227 -0
  910. package/src/utils/FlowUtils.ts +48 -0
  911. package/src/utils/FormattingUtils.ts +186 -0
  912. package/src/utils/IPFSUtils.ts +48 -0
  913. package/src/utils/JSONUtils.ts +85 -0
  914. package/src/utils/LogUtils.ts +38 -0
  915. package/src/utils/Multicall.ts +64 -0
  916. package/src/utils/NetworkUtils.ts +117 -0
  917. package/src/utils/NumberUtils.ts +17 -0
  918. package/src/utils/ObjectUtils.ts +77 -0
  919. package/src/utils/ReviverUtils.ts +31 -0
  920. package/src/utils/SpokeUtils.ts +372 -0
  921. package/src/utils/TimeUtils.ts +7 -0
  922. package/src/utils/TokenUtils.ts +94 -0
  923. package/src/utils/TypeGuards.ts +15 -0
  924. package/src/utils/TypeUtils.ts +9 -0
  925. package/src/utils/V3Utils.ts +12 -0
  926. package/src/utils/ValidatorUtils.ts +38 -0
  927. package/src/utils/abi/contracts/Multicall3.json +440 -0
  928. package/src/utils/abi/index.ts +33 -0
  929. package/src/utils/common.ts +392 -0
  930. package/src/utils/index.ts +29 -0
@@ -0,0 +1,899 @@
1
+ import { __assign, __awaiter, __generator, __spreadArray } from "tslib";
2
+ import assert from "assert";
3
+ import * as uma from "@uma/sdk";
4
+ import { toBNWei, fixedPointAdjustment, calcPeriodicCompoundInterest, calcApr, fromWei } from "../utils";
5
+ import { ethers, BigNumber } from "ethers";
6
+ import set from "lodash/set";
7
+ import get from "lodash/get";
8
+ import has from "lodash/has";
9
+ import { calculateInstantaneousRate } from "../lpFeeCalculator";
10
+ import { hubPool, acrossConfigStore } from "../contracts";
11
+ import { AcceleratingDistributor__factory, MerkleDistributor__factory, } from "../typechain";
12
+ var erc20 = uma.clients.erc20;
13
+ var loop = uma.utils.loop;
14
+ var TransactionManager = uma.across.TransactionManager;
15
+ var _a = uma.across.constants, SECONDS_PER_YEAR = _a.SECONDS_PER_YEAR, DEFAULT_BLOCK_DELTA = _a.DEFAULT_BLOCK_DELTA;
16
+ var AddressZero = ethers.constants.AddressZero;
17
+ var PoolState = /** @class */ (function () {
18
+ function PoolState(contract, address) {
19
+ this.contract = contract;
20
+ this.address = address;
21
+ }
22
+ PoolState.prototype.read = function (l1Token, latestBlock, previousBlock) {
23
+ return __awaiter(this, void 0, void 0, function () {
24
+ var exchangeRatePrevious, exchangeRateCurrent, pooledToken, liquidityUtilizationCurrent;
25
+ return __generator(this, function (_a) {
26
+ switch (_a.label) {
27
+ case 0: return [4 /*yield*/, this.exchangeRateAtBlock(l1Token, previousBlock || latestBlock - 1)];
28
+ case 1:
29
+ exchangeRatePrevious = _a.sent();
30
+ return [4 /*yield*/, this.contract.callStatic.exchangeRateCurrent(l1Token)];
31
+ case 2:
32
+ exchangeRateCurrent = _a.sent();
33
+ return [4 /*yield*/, this.contract.pooledTokens(l1Token)];
34
+ case 3:
35
+ pooledToken = _a.sent();
36
+ return [4 /*yield*/, this.contract.callStatic.liquidityUtilizationCurrent(l1Token)];
37
+ case 4:
38
+ liquidityUtilizationCurrent = _a.sent();
39
+ return [2 /*return*/, __assign({ address: this.address, l1Token: l1Token, latestBlock: latestBlock, previousBlock: previousBlock, exchangeRatePrevious: exchangeRatePrevious, exchangeRateCurrent: exchangeRateCurrent, liquidityUtilizationCurrent: liquidityUtilizationCurrent }, pooledToken)];
40
+ }
41
+ });
42
+ });
43
+ };
44
+ PoolState.prototype.exchangeRateAtBlock = function (l1Token, blockTag) {
45
+ return this.contract.callStatic.exchangeRateCurrent(l1Token, { blockTag: blockTag });
46
+ };
47
+ return PoolState;
48
+ }());
49
+ var PoolEventState = /** @class */ (function () {
50
+ function PoolEventState(contract, startBlock) {
51
+ var _this = this;
52
+ if (startBlock === void 0) { startBlock = 0; }
53
+ this.contract = contract;
54
+ this.startBlock = startBlock;
55
+ this.seen = new Set();
56
+ // maintain ordered unique list of events so we can calculate state
57
+ this.events = [];
58
+ this.makeId = function (params) {
59
+ return uma.oracle.utils.eventKey(params);
60
+ };
61
+ this.filterSeen = function (params) {
62
+ var seen = _this.hasEvent(params);
63
+ if (!seen)
64
+ _this.addEvent(params);
65
+ return !seen;
66
+ };
67
+ this.processEvent = function (event) {
68
+ if (!_this.filterSeen(event))
69
+ return;
70
+ _this.events = uma.oracle.utils.insertOrderedAscending(_this.events, event, _this.makeId);
71
+ };
72
+ this.processEvents = function (events) {
73
+ events.forEach(_this.processEvent);
74
+ };
75
+ this.makeEventFromLog = function (log) {
76
+ var description = _this.iface.parseLog(log);
77
+ return __assign(__assign(__assign({}, log), description), { event: description.name, eventSignature: description.signature });
78
+ };
79
+ this.iface = new ethers.utils.Interface(hubPool.Factory.abi);
80
+ }
81
+ PoolEventState.prototype.hasEvent = function (params) {
82
+ return this.seen.has(this.makeId(params));
83
+ };
84
+ PoolEventState.prototype.addEvent = function (params) {
85
+ this.seen.add(this.makeId(params));
86
+ };
87
+ PoolEventState.prototype.read = function (endBlock, l1TokenAddress, userAddress) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ var events, _a, _b, _c, _d;
90
+ return __generator(this, function (_e) {
91
+ switch (_e.label) {
92
+ case 0:
93
+ _b = (_a = Promise).all;
94
+ _c = [[]];
95
+ return [4 /*yield*/, this.contract.queryFilter(this.contract.filters.LiquidityAdded(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)];
96
+ case 1:
97
+ _d = [__spreadArray.apply(void 0, _c.concat([(_e.sent()), true]))];
98
+ return [4 /*yield*/, this.contract.queryFilter(this.contract.filters.LiquidityRemoved(l1TokenAddress, undefined, undefined, userAddress), this.startBlock, endBlock)];
99
+ case 2: return [4 /*yield*/, _b.apply(_a, [__spreadArray.apply(void 0, _d.concat([(_e.sent()), true]))])];
100
+ case 3:
101
+ events = _e.sent();
102
+ this.processEvents(events);
103
+ return [2 /*return*/, hubPool.getEventState(this.events)];
104
+ }
105
+ });
106
+ });
107
+ };
108
+ PoolEventState.prototype.getL1TokenFromReceipt = function (receipt) {
109
+ var _this = this;
110
+ var events = receipt.logs
111
+ .filter(function (log) { return ethers.utils.getAddress(log.address) === ethers.utils.getAddress(_this.contract.address); })
112
+ .map(this.makeEventFromLog);
113
+ // save these events
114
+ this.processEvents(events);
115
+ // only process token receipt events, becasue we just want the l1 token involved with this transfer
116
+ var eventState = hubPool.getEventState(events);
117
+ // event state is keyed by l1token address
118
+ var l1Tokens = Object.keys(eventState);
119
+ assert(l1Tokens.length, "Token not found from events");
120
+ assert(l1Tokens.length === 1, "Multiple tokens found from events");
121
+ return l1Tokens[0];
122
+ };
123
+ PoolEventState.prototype.readTxReceipt = function (receipt) {
124
+ var _this = this;
125
+ var events = receipt.logs
126
+ .filter(function (log) { return ethers.utils.getAddress(log.address) === ethers.utils.getAddress(_this.contract.address); })
127
+ .map(this.makeEventFromLog);
128
+ this.processEvents(events);
129
+ return hubPool.getEventState(this.events);
130
+ };
131
+ return PoolEventState;
132
+ }());
133
+ export { PoolEventState };
134
+ var UserState = /** @class */ (function () {
135
+ function UserState(contract, userAddress, startBlock, acceleratingDistributorContractAddress) {
136
+ var _this = this;
137
+ if (startBlock === void 0) { startBlock = 0; }
138
+ if (acceleratingDistributorContractAddress === void 0) { acceleratingDistributorContractAddress = ""; }
139
+ this.contract = contract;
140
+ this.userAddress = userAddress;
141
+ this.startBlock = startBlock;
142
+ this.acceleratingDistributorContractAddress = acceleratingDistributorContractAddress;
143
+ this.seen = new Set();
144
+ this.events = [];
145
+ this.filterSeen = function (params) {
146
+ var seen = _this.hasEvent(params);
147
+ if (!seen)
148
+ _this.addEvent(params);
149
+ return !seen;
150
+ };
151
+ }
152
+ UserState.prototype.makeId = function (params) {
153
+ return uma.oracle.utils.eventKey(params);
154
+ };
155
+ UserState.prototype.hasEvent = function (params) {
156
+ return this.seen.has(this.makeId(params));
157
+ };
158
+ UserState.prototype.addEvent = function (params) {
159
+ this.seen.add(this.makeId(params));
160
+ };
161
+ /**
162
+ * readEvents. Fetch and cache events for the user.
163
+ *
164
+ * @param {number} endBlock
165
+ */
166
+ UserState.prototype.readEvents = function (endBlock) {
167
+ return __awaiter(this, void 0, void 0, function () {
168
+ var userAddress, events, _a, _b, _c, _d;
169
+ var _this = this;
170
+ return __generator(this, function (_e) {
171
+ switch (_e.label) {
172
+ case 0:
173
+ if (endBlock <= this.startBlock)
174
+ return [2 /*return*/, []];
175
+ userAddress = this.userAddress;
176
+ _b = (_a = Promise).all;
177
+ _c = [[]];
178
+ return [4 /*yield*/, this.contract.queryFilter(this.contract.filters.Transfer(userAddress, undefined), this.startBlock, endBlock)];
179
+ case 1:
180
+ _d = [__spreadArray.apply(void 0, _c.concat([(_e.sent()), true]))];
181
+ return [4 /*yield*/, this.contract.queryFilter(this.contract.filters.Transfer(undefined, userAddress), this.startBlock, endBlock)];
182
+ case 2: return [4 /*yield*/, _b.apply(_a, [__spreadArray.apply(void 0, _d.concat([(_e.sent()), true]))])];
183
+ case 3:
184
+ events = (_e.sent())
185
+ // filter out events we have seen
186
+ .filter(this.filterSeen)
187
+ // filter out mint/burn transfers
188
+ .filter(function (event) {
189
+ // ignore mint events
190
+ return event.args.from !== AddressZero &&
191
+ // ignore burn events
192
+ event.args.to !== AddressZero &&
193
+ // ignore AD transfer events in
194
+ event.args.to !== _this.acceleratingDistributorContractAddress &&
195
+ // ignore AD transfer events out
196
+ event.args.from !== _this.acceleratingDistributorContractAddress &&
197
+ // ignore self transfer events
198
+ event.args.from !== event.args.to;
199
+ })
200
+ .flat();
201
+ this.events = this.events.concat(events).sort(function (a, b) {
202
+ if (a.blockNumber !== b.blockNumber)
203
+ return a.blockNumber - b.blockNumber;
204
+ if (a.transactionIndex !== b.transactionIndex)
205
+ return a.transactionIndex - b.transactionIndex;
206
+ if (a.logIndex !== b.logIndex)
207
+ return a.logIndex - b.logIndex;
208
+ throw new Error("Duplicate events at tx hash: " + a.transactionHash);
209
+ });
210
+ // ethers queries are inclusive [start,end] unless start === end, then exclusive (start,end). we increment to make sure we dont see same event twice
211
+ this.startBlock = endBlock + 1;
212
+ return [2 /*return*/, this.events];
213
+ }
214
+ });
215
+ });
216
+ };
217
+ /**
218
+ * read. Reads the state for the user, building state from events as well as contract calls.
219
+ *
220
+ * @param {number} endBlock
221
+ */
222
+ UserState.prototype.read = function (endBlock) {
223
+ var _a;
224
+ return __awaiter(this, void 0, void 0, function () {
225
+ var userAddress, transferEvents, state, balanceTransferred;
226
+ var _b;
227
+ return __generator(this, function (_c) {
228
+ switch (_c.label) {
229
+ case 0:
230
+ userAddress = this.userAddress;
231
+ return [4 /*yield*/, this.readEvents(endBlock)];
232
+ case 1:
233
+ transferEvents = _c.sent();
234
+ state = uma.clients.erc20.getEventState(transferEvents);
235
+ balanceTransferred = ((_a = state === null || state === void 0 ? void 0 : state.balances) === null || _a === void 0 ? void 0 : _a[userAddress]) || "0";
236
+ _b = {
237
+ transferEvents: transferEvents,
238
+ balanceTransferred: balanceTransferred,
239
+ address: userAddress
240
+ };
241
+ return [4 /*yield*/, this.contract.balanceOf(userAddress)];
242
+ case 2: return [2 /*return*/, (_b.balanceOf = _c.sent(),
243
+ _b)];
244
+ }
245
+ });
246
+ });
247
+ };
248
+ return UserState;
249
+ }());
250
+ export function calculateRemoval(amountWei, percentWei) {
251
+ var receive = amountWei.mul(percentWei).div(fixedPointAdjustment);
252
+ var remain = amountWei.sub(receive);
253
+ return {
254
+ recieve: receive.toString(),
255
+ remain: remain.toString(),
256
+ };
257
+ }
258
+ // params here mimic the user object type
259
+ export function previewRemoval(values, percentFloat) {
260
+ var percentWei = toBNWei(percentFloat);
261
+ return {
262
+ position: __assign({}, calculateRemoval(BigNumber.from(values.totalDeposited), percentWei)),
263
+ fees: __assign({}, calculateRemoval(BigNumber.from(values.feesEarned), percentWei)),
264
+ total: __assign({}, calculateRemoval(BigNumber.from(values.positionValue), percentWei)),
265
+ };
266
+ }
267
+ function joinUserState(poolState, tokenEventState, userState, transferValue, cumulativeStakeBalance, cumulativeStakeClaimBalance) {
268
+ if (transferValue === void 0) { transferValue = ethers.constants.Zero; }
269
+ if (cumulativeStakeBalance === void 0) { cumulativeStakeBalance = ethers.constants.Zero; }
270
+ if (cumulativeStakeClaimBalance === void 0) { cumulativeStakeClaimBalance = ethers.constants.Zero; }
271
+ var positionValue = BigNumber.from(poolState.exchangeRateCurrent)
272
+ .mul(userState.balanceOf.add(cumulativeStakeBalance))
273
+ .div(fixedPointAdjustment);
274
+ var totalDeposited = BigNumber.from((tokenEventState === null || tokenEventState === void 0 ? void 0 : tokenEventState.tokenBalances[userState.address]) || "0").add(cumulativeStakeClaimBalance);
275
+ var feesEarned = positionValue.sub(totalDeposited.add(transferValue));
276
+ return {
277
+ address: userState.address,
278
+ poolAddress: poolState.address,
279
+ lpTokens: userState.balanceOf.toString(),
280
+ positionValue: positionValue.toString(),
281
+ totalDeposited: totalDeposited.toString(),
282
+ feesEarned: feesEarned.toString(),
283
+ };
284
+ }
285
+ function joinPoolState(poolState, latestBlock, previousBlock, rateModel) {
286
+ var totalPoolSize = poolState.liquidReserves.add(poolState.utilizedReserves);
287
+ var secondsElapsed = latestBlock.timestamp - previousBlock.timestamp;
288
+ var blocksElapsed = latestBlock.number - previousBlock.number;
289
+ var exchangeRatePrevious = poolState.exchangeRatePrevious.toString();
290
+ var exchangeRateCurrent = poolState.exchangeRateCurrent.toString();
291
+ var liquidityUtilizationCurrent = poolState.liquidityUtilizationCurrent.toString();
292
+ var estimatedApy = calcPeriodicCompoundInterest(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
293
+ var estimatedApr = calcApr(exchangeRatePrevious, exchangeRateCurrent, secondsElapsed, SECONDS_PER_YEAR);
294
+ var projectedApr = "";
295
+ if (rateModel) {
296
+ projectedApr = fromWei(calculateInstantaneousRate(rateModel, liquidityUtilizationCurrent)
297
+ .mul(liquidityUtilizationCurrent)
298
+ .div(fixedPointAdjustment));
299
+ }
300
+ return {
301
+ address: poolState.address,
302
+ totalPoolSize: totalPoolSize.toString(),
303
+ l1Token: poolState.l1Token,
304
+ lpToken: poolState.lpToken,
305
+ liquidReserves: poolState.liquidReserves.toString(),
306
+ exchangeRateCurrent: poolState.exchangeRateCurrent.toString(),
307
+ exchangeRatePrevious: poolState.exchangeRatePrevious.toString(),
308
+ estimatedApy: estimatedApy,
309
+ estimatedApr: estimatedApr,
310
+ blocksElapsed: blocksElapsed,
311
+ secondsElapsed: secondsElapsed,
312
+ projectedApr: projectedApr,
313
+ utilizedReserves: poolState.utilizedReserves.toString(),
314
+ liquidityUtilizationCurrent: liquidityUtilizationCurrent,
315
+ };
316
+ }
317
+ var ReadPoolClient = /** @class */ (function () {
318
+ function ReadPoolClient(address, provider) {
319
+ this.address = address;
320
+ this.provider = provider;
321
+ this.contract = hubPool.connect(address, this.provider);
322
+ this.poolState = new PoolState(this.contract, this.address);
323
+ }
324
+ ReadPoolClient.prototype.read = function (tokenAddress, latestBlock) {
325
+ return this.poolState.read(tokenAddress, latestBlock);
326
+ };
327
+ return ReadPoolClient;
328
+ }());
329
+ export { ReadPoolClient };
330
+ export function validateWithdraw(pool, user, lpTokenAmount) {
331
+ var l1TokensToReturn = BigNumber.from(lpTokenAmount).mul(pool.exchangeRateCurrent).div(fixedPointAdjustment);
332
+ assert(BigNumber.from(l1TokensToReturn).gt("0"), "Must withdraw amount greater than 0");
333
+ assert(BigNumber.from(lpTokenAmount).lte(user.lpTokens), "You cannot withdraw more than you have");
334
+ return { lpTokenAmount: lpTokenAmount, l1TokensToReturn: l1TokensToReturn.toString() };
335
+ }
336
+ var Client = /** @class */ (function () {
337
+ function Client(config, deps, emit) {
338
+ this.config = config;
339
+ this.deps = deps;
340
+ this.emit = emit;
341
+ this.transactionManagers = {};
342
+ this.state = { pools: {}, users: {}, transactions: {} };
343
+ this.erc20s = {};
344
+ this.intervalStarted = false;
345
+ this.exchangeRateTable = {};
346
+ this.userServices = {};
347
+ config.chainId = config.chainId || 1;
348
+ this.hubPool = this.createHubPoolContract(deps.provider);
349
+ this.acceleratingDistributor = this.createAcceleratingDistributorContract(deps.provider);
350
+ this.merkleDistributor = this.createMerkleDistributorContract(deps.provider);
351
+ this.poolEvents = new PoolEventState(this.hubPool, this.config.hubPoolStartBlock);
352
+ this.configStoreClient = new acrossConfigStore.Client(config.configStoreAddress, deps.provider);
353
+ }
354
+ Client.prototype.getOrCreateErc20Contract = function (address) {
355
+ if (this.erc20s[address])
356
+ return this.erc20s[address];
357
+ this.erc20s[address] = erc20.connect(address, this.deps.provider);
358
+ return this.erc20s[address];
359
+ };
360
+ Client.prototype.getOrCreatePoolContract = function () {
361
+ return this.hubPool;
362
+ };
363
+ Client.prototype.createHubPoolContract = function (signerOrProvider) {
364
+ return hubPool.connect(this.config.hubPoolAddress, signerOrProvider);
365
+ };
366
+ Client.prototype.getOrCreatePoolEvents = function () {
367
+ return this.poolEvents;
368
+ };
369
+ Client.prototype.createAcceleratingDistributorContract = function (signerOrProvider) {
370
+ return AcceleratingDistributor__factory.connect(this.config.acceleratingDistributorAddress, signerOrProvider);
371
+ };
372
+ Client.prototype.createMerkleDistributorContract = function (signerOrProvider) {
373
+ return MerkleDistributor__factory.connect(this.config.merkleDistributorAddress, signerOrProvider);
374
+ };
375
+ Client.prototype.getOrCreateAcceleratingDistributorContract = function () {
376
+ return this.acceleratingDistributor;
377
+ };
378
+ Client.prototype.getOrCreateMerkleDistributorContract = function () {
379
+ return this.merkleDistributor;
380
+ };
381
+ Client.prototype.getOrCreateUserService = function (userAddress, tokenAddress) {
382
+ if (has(this.userServices, [tokenAddress, userAddress]))
383
+ return get(this.userServices, [tokenAddress, userAddress]);
384
+ var erc20Contract = this.getOrCreateErc20Contract(tokenAddress);
385
+ var userService = new UserState(erc20Contract, userAddress);
386
+ // this service is stateful now, so needs to be cached
387
+ set(this.userServices, [tokenAddress, userAddress], userService);
388
+ return userService;
389
+ };
390
+ Client.prototype.updateExchangeRateTable = function (l1TokenAddress, exchangeRateTable) {
391
+ if (!this.exchangeRateTable[l1TokenAddress])
392
+ this.exchangeRateTable[l1TokenAddress] = {};
393
+ this.exchangeRateTable[l1TokenAddress] = __assign(__assign({}, this.exchangeRateTable[l1TokenAddress]), exchangeRateTable);
394
+ return this.exchangeRateTable[l1TokenAddress];
395
+ };
396
+ Client.prototype.resolveStakingData = function (lpToken, l1TokenAddress, userState) {
397
+ return __awaiter(this, void 0, void 0, function () {
398
+ var acceleratingDistributorContract, merkleDistributorContract, poolContract, claimList, amountOfLPClaimed, cumulativeBalance;
399
+ var _this = this;
400
+ return __generator(this, function (_a) {
401
+ switch (_a.label) {
402
+ case 0:
403
+ assert(this.config.acceleratingDistributorAddress, "Must have the accelerating distributor address");
404
+ assert(this.config.merkleDistributorAddress, "Must have the merkle distributor address");
405
+ acceleratingDistributorContract = this.getOrCreateAcceleratingDistributorContract();
406
+ merkleDistributorContract = this.getOrCreateMerkleDistributorContract();
407
+ poolContract = this.getOrCreatePoolContract();
408
+ return [4 /*yield*/, merkleDistributorContract.queryFilter(merkleDistributorContract.filters.Claimed(undefined, undefined, userState.address, undefined, undefined, lpToken))];
409
+ case 1:
410
+ claimList = _a.sent();
411
+ return [4 /*yield*/, Promise.all(claimList.map(function (claim) { return __awaiter(_this, void 0, void 0, function () {
412
+ var _a, _b;
413
+ return __generator(this, function (_c) {
414
+ switch (_c.label) {
415
+ case 0:
416
+ _b = (_a = claim.args.amount).mul;
417
+ return [4 /*yield*/, poolContract.callStatic.exchangeRateCurrent(l1TokenAddress, { blockTag: claim.blockNumber })];
418
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
419
+ }
420
+ });
421
+ }); }))];
422
+ case 2:
423
+ amountOfLPClaimed = (_a.sent()).reduce(function (prev, acc) { return acc.add(prev); }, ethers.constants.Zero);
424
+ return [4 /*yield*/, acceleratingDistributorContract.getUserStake(lpToken, userState.address)];
425
+ case 3:
426
+ cumulativeBalance = (_a.sent()).cumulativeBalance;
427
+ return [2 /*return*/, {
428
+ cumulativeBalance: cumulativeBalance,
429
+ amountAirdropped: amountOfLPClaimed,
430
+ }];
431
+ }
432
+ });
433
+ });
434
+ };
435
+ // calculates the value of each LP token transfer at the block it was sent. this only works if we have archive node
436
+ Client.prototype.calculateLpTransferValue = function (l1TokenAddress, userState) {
437
+ return __awaiter(this, void 0, void 0, function () {
438
+ var contract, pool, blockNumbers, exchangeRateTable, _a, _b, _c, _d;
439
+ var _this = this;
440
+ return __generator(this, function (_e) {
441
+ switch (_e.label) {
442
+ case 0:
443
+ assert(this.config.hasArchive, "Can only calculate historical lp values with archive node");
444
+ contract = this.getOrCreatePoolContract();
445
+ pool = new PoolState(contract, this.config.hubPoolAddress);
446
+ blockNumbers = userState.transferEvents
447
+ .map(function (x) { return x.blockNumber; })
448
+ // we are going to lookup exchange rates for block numbers only if we dont already have it
449
+ // its possible these values do not exist, so to prevent crashing do optional chaining
450
+ .filter(function (blockNumber) { var _a, _b; return !((_b = (_a = _this.exchangeRateTable) === null || _a === void 0 ? void 0 : _a[l1TokenAddress]) === null || _b === void 0 ? void 0 : _b[blockNumber]); });
451
+ _a = this.updateExchangeRateTable;
452
+ _b = [l1TokenAddress];
453
+ _d = (_c = Object).fromEntries;
454
+ return [4 /*yield*/, Promise.all(blockNumbers.map(function (blockNumber) { return __awaiter(_this, void 0, void 0, function () {
455
+ var _a;
456
+ return __generator(this, function (_b) {
457
+ switch (_b.label) {
458
+ case 0:
459
+ _a = [blockNumber];
460
+ return [4 /*yield*/, pool.exchangeRateAtBlock(l1TokenAddress, blockNumber)];
461
+ case 1: return [2 /*return*/, _a.concat([_b.sent()])];
462
+ }
463
+ });
464
+ }); }))];
465
+ case 1:
466
+ exchangeRateTable = _a.apply(this, _b.concat([_d.apply(_c, [_e.sent()])]));
467
+ return [2 /*return*/, userState.transferEvents.reduce(function (result, transfer) {
468
+ var exchangeRate = exchangeRateTable[transfer.blockNumber];
469
+ if (transfer.args.to === userState.address) {
470
+ return result.add(transfer.args.value.mul(exchangeRate).div(fixedPointAdjustment));
471
+ }
472
+ if (transfer.args.from === userState.address) {
473
+ return result.sub(transfer.args.value.mul(exchangeRate).div(fixedPointAdjustment));
474
+ }
475
+ // we make sure to filter out any transfers where to/from is the same user
476
+ return result;
477
+ }, ethers.constants.Zero)];
478
+ }
479
+ });
480
+ });
481
+ };
482
+ Client.prototype.getOrCreateTransactionManager = function (signer, address) {
483
+ var _this = this;
484
+ if (this.transactionManagers[address])
485
+ return this.transactionManagers[address];
486
+ var txman = TransactionManager({ confirmations: this.config.confirmations }, signer, function (event, id, data) {
487
+ if (event === "submitted") {
488
+ _this.state.transactions[id].state = event;
489
+ _this.state.transactions[id].hash = data;
490
+ _this.emit(["transactions", id], __assign({}, _this.state.transactions[id]));
491
+ }
492
+ if (event === "mined") {
493
+ var txReceipt = data;
494
+ _this.state.transactions[id].state = event;
495
+ _this.state.transactions[id].receipt = txReceipt;
496
+ _this.emit(["transactions", id], __assign({}, _this.state.transactions[id]));
497
+ // trigger pool and user update for a known mined transaction
498
+ var tx = _this.state.transactions[id];
499
+ _this.updateUserWithTransaction(tx.fromAddress, txReceipt).catch(function (err) {
500
+ _this.emit(["error"], err);
501
+ });
502
+ }
503
+ if (event === "error") {
504
+ _this.state.transactions[id].state = event;
505
+ _this.state.transactions[id].error = data;
506
+ _this.emit(["transactions", id], __assign({}, _this.state.transactions[id]));
507
+ }
508
+ });
509
+ this.transactionManagers[address] = txman;
510
+ return txman;
511
+ };
512
+ Client.prototype.addEthLiquidity = function (signer, l1TokenAmount, overrides) {
513
+ if (overrides === void 0) { overrides = {}; }
514
+ return __awaiter(this, void 0, void 0, function () {
515
+ var _a, hubPoolAddress, l1Token, userAddress, contract, txman, request, id;
516
+ return __generator(this, function (_b) {
517
+ switch (_b.label) {
518
+ case 0:
519
+ _a = this.config, hubPoolAddress = _a.hubPoolAddress, l1Token = _a.wethAddress;
520
+ return [4 /*yield*/, signer.getAddress()];
521
+ case 1:
522
+ userAddress = _b.sent();
523
+ contract = this.getOrCreatePoolContract();
524
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
525
+ return [4 /*yield*/, contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, __assign(__assign({}, overrides), { value: l1TokenAmount }))];
526
+ case 2:
527
+ request = _b.sent();
528
+ id = txman.request(request);
529
+ this.state.transactions[id] = {
530
+ id: id,
531
+ state: "requested",
532
+ toAddress: hubPoolAddress,
533
+ fromAddress: userAddress,
534
+ type: "Add Liquidity",
535
+ description: "Adding ETH to pool",
536
+ request: request,
537
+ };
538
+ this.emit(["transactions", id], __assign({}, this.state.transactions[id]));
539
+ return [4 /*yield*/, txman.update()];
540
+ case 3:
541
+ _b.sent();
542
+ return [2 /*return*/, id];
543
+ }
544
+ });
545
+ });
546
+ };
547
+ Client.prototype.addTokenLiquidity = function (signer, l1Token, l1TokenAmount, overrides) {
548
+ if (overrides === void 0) { overrides = {}; }
549
+ return __awaiter(this, void 0, void 0, function () {
550
+ var hubPoolAddress, userAddress, contract, txman, request, id;
551
+ return __generator(this, function (_a) {
552
+ switch (_a.label) {
553
+ case 0:
554
+ hubPoolAddress = this.config.hubPoolAddress;
555
+ return [4 /*yield*/, signer.getAddress()];
556
+ case 1:
557
+ userAddress = _a.sent();
558
+ contract = this.getOrCreatePoolContract();
559
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
560
+ return [4 /*yield*/, contract.populateTransaction.addLiquidity(l1Token, l1TokenAmount, overrides)];
561
+ case 2:
562
+ request = _a.sent();
563
+ return [4 /*yield*/, txman.request(request)];
564
+ case 3:
565
+ id = _a.sent();
566
+ this.state.transactions[id] = {
567
+ id: id,
568
+ state: "requested",
569
+ toAddress: hubPoolAddress,
570
+ fromAddress: userAddress,
571
+ type: "Add Liquidity",
572
+ description: "Adding Tokens to pool",
573
+ request: request,
574
+ };
575
+ this.emit(["transactions", id], __assign({}, this.state.transactions[id]));
576
+ return [4 /*yield*/, txman.update()];
577
+ case 4:
578
+ _a.sent();
579
+ return [2 /*return*/, id];
580
+ }
581
+ });
582
+ });
583
+ };
584
+ Client.prototype.validateWithdraw = function (l1Token, userAddress, lpAmount) {
585
+ return __awaiter(this, void 0, void 0, function () {
586
+ var poolState, userState;
587
+ return __generator(this, function (_a) {
588
+ switch (_a.label) {
589
+ case 0: return [4 /*yield*/, this.updatePool(l1Token)];
590
+ case 1:
591
+ _a.sent();
592
+ poolState = this.getPoolState(l1Token);
593
+ if (!!this.hasUserState(l1Token, userAddress)) return [3 /*break*/, 3];
594
+ return [4 /*yield*/, this.updateUser(l1Token, userAddress)];
595
+ case 2:
596
+ _a.sent();
597
+ _a.label = 3;
598
+ case 3:
599
+ userState = this.getUserState(poolState.l1Token, userAddress);
600
+ return [2 /*return*/, validateWithdraw(poolState, userState, lpAmount)];
601
+ }
602
+ });
603
+ });
604
+ };
605
+ Client.prototype.removeTokenLiquidity = function (signer, l1Token, lpTokenAmount, overrides) {
606
+ if (overrides === void 0) { overrides = {}; }
607
+ return __awaiter(this, void 0, void 0, function () {
608
+ var hubPoolAddress, userAddress, contract, txman, request, id;
609
+ return __generator(this, function (_a) {
610
+ switch (_a.label) {
611
+ case 0:
612
+ hubPoolAddress = this.config.hubPoolAddress;
613
+ return [4 /*yield*/, signer.getAddress()];
614
+ case 1:
615
+ userAddress = _a.sent();
616
+ return [4 /*yield*/, this.validateWithdraw(l1Token, userAddress, lpTokenAmount)];
617
+ case 2:
618
+ _a.sent();
619
+ contract = this.getOrCreatePoolContract();
620
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
621
+ return [4 /*yield*/, contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, false, overrides)];
622
+ case 3:
623
+ request = _a.sent();
624
+ return [4 /*yield*/, txman.request(request)];
625
+ case 4:
626
+ id = _a.sent();
627
+ this.state.transactions[id] = {
628
+ id: id,
629
+ state: "requested",
630
+ toAddress: hubPoolAddress,
631
+ fromAddress: userAddress,
632
+ type: "Remove Liquidity",
633
+ description: "Withdrawing Tokens from pool",
634
+ request: request,
635
+ };
636
+ this.emit(["transactions", id], __assign({}, this.state.transactions[id]));
637
+ return [4 /*yield*/, txman.update()];
638
+ case 5:
639
+ _a.sent();
640
+ return [2 /*return*/, id];
641
+ }
642
+ });
643
+ });
644
+ };
645
+ Client.prototype.removeEthliquidity = function (signer, lpTokenAmount, overrides) {
646
+ if (overrides === void 0) { overrides = {}; }
647
+ return __awaiter(this, void 0, void 0, function () {
648
+ var _a, hubPoolAddress, l1Token, userAddress, contract, txman, request, id;
649
+ return __generator(this, function (_b) {
650
+ switch (_b.label) {
651
+ case 0:
652
+ _a = this.config, hubPoolAddress = _a.hubPoolAddress, l1Token = _a.wethAddress;
653
+ return [4 /*yield*/, signer.getAddress()];
654
+ case 1:
655
+ userAddress = _b.sent();
656
+ return [4 /*yield*/, this.validateWithdraw(l1Token, userAddress, lpTokenAmount)];
657
+ case 2:
658
+ _b.sent();
659
+ contract = this.getOrCreatePoolContract();
660
+ txman = this.getOrCreateTransactionManager(signer, userAddress);
661
+ return [4 /*yield*/, contract.populateTransaction.removeLiquidity(l1Token, lpTokenAmount, true, overrides)];
662
+ case 3:
663
+ request = _b.sent();
664
+ return [4 /*yield*/, txman.request(request)];
665
+ case 4:
666
+ id = _b.sent();
667
+ this.state.transactions[id] = {
668
+ id: id,
669
+ state: "requested",
670
+ toAddress: hubPoolAddress,
671
+ fromAddress: userAddress,
672
+ type: "Remove Liquidity",
673
+ description: "Withdrawing Eth from pool",
674
+ request: request,
675
+ };
676
+ this.emit(["transactions", id], __assign({}, this.state.transactions[id]));
677
+ return [4 /*yield*/, txman.update()];
678
+ case 5:
679
+ _b.sent();
680
+ return [2 /*return*/, id];
681
+ }
682
+ });
683
+ });
684
+ };
685
+ Client.prototype.getPoolState = function (l1TokenAddress) {
686
+ return this.state.pools[l1TokenAddress];
687
+ };
688
+ Client.prototype.hasPoolState = function (l1TokenAddress) {
689
+ return Boolean(this.state.pools[l1TokenAddress]);
690
+ };
691
+ Client.prototype.setUserState = function (l1TokenAddress, userAddress, state) {
692
+ set(this.state, ["users", userAddress, l1TokenAddress], state);
693
+ return state;
694
+ };
695
+ Client.prototype.getUserState = function (l1TokenAddress, userAddress) {
696
+ return get(this.state, ["users", userAddress, l1TokenAddress]);
697
+ };
698
+ Client.prototype.hasUserState = function (l1TokenAddress, userAddress) {
699
+ return has(this.state, ["users", userAddress, l1TokenAddress]);
700
+ };
701
+ Client.prototype.hasTxState = function (id) {
702
+ return has(this.state, ["transactions", id]);
703
+ };
704
+ Client.prototype.getTxState = function (id) {
705
+ return get(this.state, ["transactions", id]);
706
+ };
707
+ Client.prototype.updateAndEmitUser = function (userState, poolState, poolEventState) {
708
+ return __awaiter(this, void 0, void 0, function () {
709
+ var l1TokenAddress, lpToken, userAddress, transferValue, _a, stakeData, tokenEventState, newUserState;
710
+ return __generator(this, function (_b) {
711
+ switch (_b.label) {
712
+ case 0:
713
+ l1TokenAddress = poolState.l1Token, lpToken = poolState.lpToken;
714
+ userAddress = userState.address;
715
+ if (!this.config.hasArchive) return [3 /*break*/, 2];
716
+ return [4 /*yield*/, this.calculateLpTransferValue(l1TokenAddress, userState)];
717
+ case 1:
718
+ _a = _b.sent();
719
+ return [3 /*break*/, 3];
720
+ case 2:
721
+ _a = ethers.constants.Zero;
722
+ _b.label = 3;
723
+ case 3:
724
+ transferValue = _a;
725
+ return [4 /*yield*/, this.resolveStakingData(lpToken, l1TokenAddress, userState)];
726
+ case 4:
727
+ stakeData = _b.sent();
728
+ tokenEventState = poolEventState[l1TokenAddress];
729
+ newUserState = this.setUserState(l1TokenAddress, userAddress, joinUserState(poolState, tokenEventState, userState, transferValue, stakeData.cumulativeBalance, stakeData.amountAirdropped));
730
+ this.emit(["users", userAddress, l1TokenAddress], newUserState);
731
+ return [2 /*return*/];
732
+ }
733
+ });
734
+ });
735
+ };
736
+ Client.prototype.updateUserWithTransaction = function (userAddress, txReceipt) {
737
+ return __awaiter(this, void 0, void 0, function () {
738
+ var latestBlock, getPoolEventState, l1TokenAddress, poolState, poolEventState, lpToken, getUserState, userState;
739
+ return __generator(this, function (_a) {
740
+ switch (_a.label) {
741
+ case 0: return [4 /*yield*/, this.deps.provider.getBlock("latest")];
742
+ case 1:
743
+ latestBlock = _a.sent();
744
+ getPoolEventState = this.getOrCreatePoolEvents();
745
+ l1TokenAddress = getPoolEventState.getL1TokenFromReceipt(txReceipt);
746
+ return [4 /*yield*/, this.updatePool(l1TokenAddress, latestBlock)];
747
+ case 2:
748
+ _a.sent();
749
+ poolState = this.getPoolState(l1TokenAddress);
750
+ poolEventState = getPoolEventState.readTxReceipt(txReceipt);
751
+ lpToken = poolState.lpToken;
752
+ getUserState = this.getOrCreateUserService(userAddress, lpToken);
753
+ return [4 /*yield*/, getUserState.read(latestBlock.number)];
754
+ case 3:
755
+ userState = _a.sent();
756
+ return [4 /*yield*/, this.updateAndEmitUser(userState, poolState, poolEventState)];
757
+ case 4:
758
+ _a.sent();
759
+ return [2 /*return*/];
760
+ }
761
+ });
762
+ });
763
+ };
764
+ Client.prototype.updateUser = function (userAddress, l1TokenAddress) {
765
+ return __awaiter(this, void 0, void 0, function () {
766
+ var latestBlock, poolState, lpToken, getPoolEventState, poolEventState, getUserState, userState;
767
+ return __generator(this, function (_a) {
768
+ switch (_a.label) {
769
+ case 0: return [4 /*yield*/, this.deps.provider.getBlock("latest")];
770
+ case 1:
771
+ latestBlock = _a.sent();
772
+ return [4 /*yield*/, this.updatePool(l1TokenAddress, latestBlock)];
773
+ case 2:
774
+ _a.sent();
775
+ poolState = this.getPoolState(l1TokenAddress);
776
+ lpToken = poolState.lpToken;
777
+ getPoolEventState = this.getOrCreatePoolEvents();
778
+ return [4 /*yield*/, getPoolEventState.read(latestBlock.number, l1TokenAddress, userAddress)];
779
+ case 3:
780
+ poolEventState = _a.sent();
781
+ getUserState = this.getOrCreateUserService(userAddress, lpToken);
782
+ return [4 /*yield*/, getUserState.read(latestBlock.number)];
783
+ case 4:
784
+ userState = _a.sent();
785
+ return [4 /*yield*/, this.updateAndEmitUser(userState, poolState, poolEventState)];
786
+ case 5:
787
+ _a.sent();
788
+ return [2 /*return*/];
789
+ }
790
+ });
791
+ });
792
+ };
793
+ Client.prototype.updatePool = function (l1TokenAddress, overrideLatestBlock) {
794
+ return __awaiter(this, void 0, void 0, function () {
795
+ var _a, blockDelta, contract, pool, latestBlock, _b, previousBlock, state, rateModel, err_1;
796
+ return __generator(this, function (_c) {
797
+ switch (_c.label) {
798
+ case 0:
799
+ _a = this.config.blockDelta, blockDelta = _a === void 0 ? DEFAULT_BLOCK_DELTA : _a;
800
+ contract = this.getOrCreatePoolContract();
801
+ pool = new PoolState(contract, this.config.hubPoolAddress);
802
+ _b = overrideLatestBlock;
803
+ if (_b) return [3 /*break*/, 2];
804
+ return [4 /*yield*/, this.deps.provider.getBlock("latest")];
805
+ case 1:
806
+ _b = (_c.sent());
807
+ _c.label = 2;
808
+ case 2:
809
+ latestBlock = _b;
810
+ return [4 /*yield*/, this.deps.provider.getBlock(latestBlock.number - blockDelta)];
811
+ case 3:
812
+ previousBlock = _c.sent();
813
+ return [4 /*yield*/, pool.read(l1TokenAddress, latestBlock.number, previousBlock.number)];
814
+ case 4:
815
+ state = _c.sent();
816
+ rateModel = undefined;
817
+ _c.label = 5;
818
+ case 5:
819
+ _c.trys.push([5, 7, , 8]);
820
+ return [4 /*yield*/, this.configStoreClient.getRateModel(l1TokenAddress)];
821
+ case 6:
822
+ // Use the default rate model (i.e. not any of the routeRateModels to project the Pool's APR). This assumes
823
+ // that the default rate model is the most often used, but this may change in future if many different
824
+ // route rate models are set.
825
+ rateModel = _c.sent();
826
+ return [3 /*break*/, 8];
827
+ case 7:
828
+ err_1 = _c.sent();
829
+ // we could swallow this error or just log it since getting the rate model is optional,
830
+ // but we will just emit it to the caller and let them decide what to do with it.
831
+ this.emit(["error"], err_1);
832
+ return [3 /*break*/, 8];
833
+ case 8:
834
+ this.state.pools[l1TokenAddress] = joinPoolState(state, latestBlock, previousBlock, rateModel);
835
+ this.emit(["pools", l1TokenAddress], this.state.pools[l1TokenAddress]);
836
+ return [2 /*return*/];
837
+ }
838
+ });
839
+ });
840
+ };
841
+ Client.prototype.updateTransactions = function () {
842
+ return __awaiter(this, void 0, void 0, function () {
843
+ var _i, _a, txMan, err_2;
844
+ return __generator(this, function (_b) {
845
+ switch (_b.label) {
846
+ case 0:
847
+ _i = 0, _a = Object.values(this.transactionManagers);
848
+ _b.label = 1;
849
+ case 1:
850
+ if (!(_i < _a.length)) return [3 /*break*/, 6];
851
+ txMan = _a[_i];
852
+ _b.label = 2;
853
+ case 2:
854
+ _b.trys.push([2, 4, , 5]);
855
+ return [4 /*yield*/, txMan.update()];
856
+ case 3:
857
+ _b.sent();
858
+ return [3 /*break*/, 5];
859
+ case 4:
860
+ err_2 = _b.sent();
861
+ this.emit(["error"], err_2);
862
+ return [3 /*break*/, 5];
863
+ case 5:
864
+ _i++;
865
+ return [3 /*break*/, 1];
866
+ case 6: return [2 /*return*/];
867
+ }
868
+ });
869
+ });
870
+ };
871
+ // starts transaction checking intervals, defaults to 30 seconds
872
+ Client.prototype.startInterval = function (delayMs) {
873
+ var _this = this;
874
+ if (delayMs === void 0) { delayMs = 30000; }
875
+ assert(!this.intervalStarted, "Interval already started, try stopping first");
876
+ this.intervalStarted = true;
877
+ loop(function () { return __awaiter(_this, void 0, void 0, function () {
878
+ return __generator(this, function (_a) {
879
+ switch (_a.label) {
880
+ case 0:
881
+ assert(this.intervalStarted, "HubPool Interval Stopped");
882
+ return [4 /*yield*/, this.updateTransactions()];
883
+ case 1:
884
+ _a.sent();
885
+ return [2 /*return*/];
886
+ }
887
+ });
888
+ }); }, delayMs).catch(function (err) {
889
+ _this.emit(["error"], err);
890
+ });
891
+ };
892
+ // starts transaction checking intervals
893
+ Client.prototype.stopInterval = function () {
894
+ this.intervalStarted = false;
895
+ };
896
+ return Client;
897
+ }());
898
+ export { Client };
899
+ //# sourceMappingURL=poolClient.js.map