@gauntlet-xyz/sdk 2.3.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/README.md +135 -0
  2. package/dist/api/activity.d.ts +1 -1
  3. package/dist/api/activity.d.ts.map +1 -1
  4. package/dist/api/caip.d.ts +1 -1
  5. package/dist/api/caip.d.ts.map +1 -1
  6. package/dist/api/client.d.ts +65 -6
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/api/errors.d.ts +1 -1
  9. package/dist/api/errors.d.ts.map +1 -1
  10. package/dist/api/generated.d.ts +621 -14
  11. package/dist/api/generated.d.ts.map +1 -1
  12. package/dist/api/index.d.ts +13 -13
  13. package/dist/api/index.d.ts.map +1 -1
  14. package/dist/api/index.js +48 -8
  15. package/dist/api/index.js.map +7 -1
  16. package/dist/api/positionHistory.d.ts +1 -1
  17. package/dist/api/positionHistory.d.ts.map +1 -1
  18. package/dist/attribution/index.d.ts +3 -3
  19. package/dist/attribution/index.d.ts.map +1 -1
  20. package/dist/chunk-7TA2OJUK.js +4364 -0
  21. package/dist/chunk-7TA2OJUK.js.map +7 -0
  22. package/dist/chunk-HC2BS7MK.js +439 -0
  23. package/dist/chunk-HC2BS7MK.js.map +7 -0
  24. package/dist/chunk-S2TTA45N.js +2009 -0
  25. package/dist/chunk-S2TTA45N.js.map +7 -0
  26. package/dist/chunk-STIV2CC4.js +57 -0
  27. package/dist/chunk-STIV2CC4.js.map +7 -0
  28. package/dist/chunk-SU6JAKIA.js +283 -0
  29. package/dist/chunk-SU6JAKIA.js.map +7 -0
  30. package/dist/cjs/api/activity.d.ts +70 -0
  31. package/dist/cjs/api/activity.d.ts.map +1 -0
  32. package/dist/cjs/api/activity.js +136 -0
  33. package/dist/cjs/api/activity.js.map +7 -0
  34. package/dist/cjs/api/caip.d.ts +29 -0
  35. package/dist/cjs/api/caip.d.ts.map +1 -0
  36. package/dist/cjs/api/caip.js +59 -0
  37. package/dist/cjs/api/caip.js.map +7 -0
  38. package/dist/cjs/api/client.d.ts +173 -0
  39. package/dist/cjs/api/client.d.ts.map +1 -0
  40. package/dist/cjs/api/client.js +171 -0
  41. package/dist/cjs/api/client.js.map +7 -0
  42. package/dist/cjs/api/decimal.d.ts +21 -0
  43. package/dist/cjs/api/decimal.d.ts.map +1 -0
  44. package/dist/cjs/api/decimal.js +60 -0
  45. package/dist/cjs/api/decimal.js.map +7 -0
  46. package/dist/cjs/api/errors.d.ts +32 -0
  47. package/dist/cjs/api/errors.d.ts.map +1 -0
  48. package/dist/cjs/api/errors.js +80 -0
  49. package/dist/cjs/api/errors.js.map +7 -0
  50. package/dist/cjs/api/generated.d.ts +2068 -0
  51. package/dist/cjs/api/generated.d.ts.map +1 -0
  52. package/dist/cjs/api/generated.js +17 -0
  53. package/dist/cjs/api/generated.js.map +7 -0
  54. package/dist/cjs/api/http.d.ts +16 -0
  55. package/dist/cjs/api/http.d.ts.map +1 -0
  56. package/dist/cjs/api/http.js +64 -0
  57. package/dist/cjs/api/http.js.map +7 -0
  58. package/dist/cjs/api/index.d.ts +14 -0
  59. package/dist/cjs/api/index.d.ts.map +1 -0
  60. package/dist/cjs/api/index.js +73 -0
  61. package/dist/cjs/api/index.js.map +7 -0
  62. package/dist/cjs/api/positionHistory.d.ts +44 -0
  63. package/dist/cjs/api/positionHistory.d.ts.map +1 -0
  64. package/dist/cjs/api/positionHistory.js +131 -0
  65. package/dist/cjs/api/positionHistory.js.map +7 -0
  66. package/dist/cjs/attribution/erc8021.d.ts +9 -0
  67. package/dist/cjs/attribution/erc8021.d.ts.map +1 -0
  68. package/dist/cjs/attribution/erc8021.js +37 -0
  69. package/dist/cjs/attribution/erc8021.js.map +7 -0
  70. package/dist/cjs/attribution/index.d.ts +25 -0
  71. package/dist/cjs/attribution/index.d.ts.map +1 -0
  72. package/dist/cjs/attribution/index.js +68 -0
  73. package/dist/cjs/attribution/index.js.map +7 -0
  74. package/dist/cjs/client.d.ts +72 -0
  75. package/dist/cjs/client.d.ts.map +1 -0
  76. package/dist/cjs/client.js +80 -0
  77. package/dist/cjs/client.js.map +7 -0
  78. package/dist/cjs/constants.d.ts +16 -0
  79. package/dist/cjs/constants.d.ts.map +1 -0
  80. package/dist/cjs/constants.js +83 -0
  81. package/dist/cjs/constants.js.map +7 -0
  82. package/dist/cjs/errors.d.ts +85 -0
  83. package/dist/cjs/errors.d.ts.map +1 -0
  84. package/dist/cjs/errors.js +210 -0
  85. package/dist/cjs/errors.js.map +7 -0
  86. package/dist/cjs/evm/abis/erc20.d.ts +41 -0
  87. package/dist/cjs/evm/abis/erc20.d.ts.map +1 -0
  88. package/dist/cjs/evm/abis/erc20.js +57 -0
  89. package/dist/cjs/evm/abis/erc20.js.map +7 -0
  90. package/dist/cjs/evm/abis/erc4626.d.ts +105 -0
  91. package/dist/cjs/evm/abis/erc4626.d.ts.map +1 -0
  92. package/dist/cjs/evm/abis/erc4626.js +97 -0
  93. package/dist/cjs/evm/abis/erc4626.js.map +7 -0
  94. package/dist/cjs/evm/abis/multiDepositorVault.d.ts +1048 -0
  95. package/dist/cjs/evm/abis/multiDepositorVault.d.ts.map +1 -0
  96. package/dist/cjs/evm/abis/multiDepositorVault.js +614 -0
  97. package/dist/cjs/evm/abis/multiDepositorVault.js.map +7 -0
  98. package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts +910 -0
  99. package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts.map +1 -0
  100. package/dist/cjs/evm/abis/priceAndFeeCalculator.js +517 -0
  101. package/dist/cjs/evm/abis/priceAndFeeCalculator.js.map +7 -0
  102. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts +277 -0
  103. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -0
  104. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js +166 -0
  105. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js.map +7 -0
  106. package/dist/cjs/evm/abis/provisioner.d.ts +4984 -0
  107. package/dist/cjs/evm/abis/provisioner.d.ts.map +1 -0
  108. package/dist/cjs/evm/abis/provisioner.js +2785 -0
  109. package/dist/cjs/evm/abis/provisioner.js.map +7 -0
  110. package/dist/cjs/evm/abis/provisionerV2.d.ts +740 -0
  111. package/dist/cjs/evm/abis/provisionerV2.d.ts.map +1 -0
  112. package/dist/cjs/evm/abis/provisionerV2.js +320 -0
  113. package/dist/cjs/evm/abis/provisionerV2.js.map +7 -0
  114. package/dist/cjs/evm/adapters/aera.d.ts +6 -0
  115. package/dist/cjs/evm/adapters/aera.d.ts.map +1 -0
  116. package/dist/cjs/evm/adapters/aera.js +491 -0
  117. package/dist/cjs/evm/adapters/aera.js.map +7 -0
  118. package/dist/cjs/evm/adapters/index.d.ts +3 -0
  119. package/dist/cjs/evm/adapters/index.d.ts.map +1 -0
  120. package/dist/cjs/evm/adapters/index.js +41 -0
  121. package/dist/cjs/evm/adapters/index.js.map +7 -0
  122. package/dist/cjs/evm/adapters/morpho.d.ts +3 -0
  123. package/dist/cjs/evm/adapters/morpho.d.ts.map +1 -0
  124. package/dist/cjs/evm/adapters/morpho.js +103 -0
  125. package/dist/cjs/evm/adapters/morpho.js.map +7 -0
  126. package/dist/cjs/evm/adapters/types.d.ts +84 -0
  127. package/dist/cjs/evm/adapters/types.d.ts.map +1 -0
  128. package/dist/cjs/evm/adapters/types.js +17 -0
  129. package/dist/cjs/evm/adapters/types.js.map +7 -0
  130. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts +46 -0
  131. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -0
  132. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js +223 -0
  133. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js.map +7 -0
  134. package/dist/cjs/evm/aeraContracts/readOptions.d.ts +8 -0
  135. package/dist/cjs/evm/aeraContracts/readOptions.d.ts.map +1 -0
  136. package/dist/cjs/evm/aeraContracts/readOptions.js +31 -0
  137. package/dist/cjs/evm/aeraContracts/readOptions.js.map +7 -0
  138. package/dist/cjs/evm/aeraContracts/v1.d.ts +2317 -0
  139. package/dist/cjs/evm/aeraContracts/v1.d.ts.map +1 -0
  140. package/dist/cjs/evm/aeraContracts/v1.js +120 -0
  141. package/dist/cjs/evm/aeraContracts/v1.js.map +7 -0
  142. package/dist/cjs/evm/aeraContracts/v2.d.ts +4538 -0
  143. package/dist/cjs/evm/aeraContracts/v2.d.ts.map +1 -0
  144. package/dist/cjs/evm/aeraContracts/v2.js +449 -0
  145. package/dist/cjs/evm/aeraContracts/v2.js.map +7 -0
  146. package/dist/cjs/evm/aeraContracts.d.ts +33 -0
  147. package/dist/cjs/evm/aeraContracts.d.ts.map +1 -0
  148. package/dist/cjs/evm/aeraContracts.js +224 -0
  149. package/dist/cjs/evm/aeraContracts.js.map +7 -0
  150. package/dist/cjs/evm/deposit.d.ts +50 -0
  151. package/dist/cjs/evm/deposit.d.ts.map +1 -0
  152. package/dist/cjs/evm/deposit.js +112 -0
  153. package/dist/cjs/evm/deposit.js.map +7 -0
  154. package/dist/cjs/evm/depositQuote.d.ts +32 -0
  155. package/dist/cjs/evm/depositQuote.d.ts.map +1 -0
  156. package/dist/cjs/evm/depositQuote.js +96 -0
  157. package/dist/cjs/evm/depositQuote.js.map +7 -0
  158. package/dist/cjs/evm/depositReceiverApproval.d.ts +17 -0
  159. package/dist/cjs/evm/depositReceiverApproval.d.ts.map +1 -0
  160. package/dist/cjs/evm/depositReceiverApproval.js +66 -0
  161. package/dist/cjs/evm/depositReceiverApproval.js.map +7 -0
  162. package/dist/cjs/evm/index.d.ts +28 -0
  163. package/dist/cjs/evm/index.d.ts.map +1 -0
  164. package/dist/cjs/evm/index.js +116 -0
  165. package/dist/cjs/evm/index.js.map +7 -0
  166. package/dist/cjs/evm/operationMode.d.ts +9 -0
  167. package/dist/cjs/evm/operationMode.d.ts.map +1 -0
  168. package/dist/cjs/evm/operationMode.js +65 -0
  169. package/dist/cjs/evm/operationMode.js.map +7 -0
  170. package/dist/cjs/evm/tokenModes.d.ts +22 -0
  171. package/dist/cjs/evm/tokenModes.d.ts.map +1 -0
  172. package/dist/cjs/evm/tokenModes.js +47 -0
  173. package/dist/cjs/evm/tokenModes.js.map +7 -0
  174. package/dist/cjs/evm/types.d.ts +34 -0
  175. package/dist/cjs/evm/types.d.ts.map +1 -0
  176. package/dist/cjs/evm/types.js +32 -0
  177. package/dist/cjs/evm/types.js.map +7 -0
  178. package/dist/cjs/evm/userCurrentBalance.d.ts +55 -0
  179. package/dist/cjs/evm/userCurrentBalance.d.ts.map +1 -0
  180. package/dist/cjs/evm/userCurrentBalance.js +225 -0
  181. package/dist/cjs/evm/userCurrentBalance.js.map +7 -0
  182. package/dist/cjs/evm/vaults.d.ts +44 -0
  183. package/dist/cjs/evm/vaults.d.ts.map +1 -0
  184. package/dist/cjs/evm/vaults.js +78 -0
  185. package/dist/cjs/evm/vaults.js.map +7 -0
  186. package/dist/cjs/evm/withdraw.d.ts +73 -0
  187. package/dist/cjs/evm/withdraw.d.ts.map +1 -0
  188. package/dist/cjs/evm/withdraw.js +161 -0
  189. package/dist/cjs/evm/withdraw.js.map +7 -0
  190. package/dist/cjs/evm/withdrawQuote.d.ts +135 -0
  191. package/dist/cjs/evm/withdrawQuote.d.ts.map +1 -0
  192. package/dist/cjs/evm/withdrawQuote.js +256 -0
  193. package/dist/cjs/evm/withdrawQuote.js.map +7 -0
  194. package/dist/cjs/index.d.ts +31 -0
  195. package/dist/cjs/index.d.ts.map +1 -0
  196. package/dist/cjs/index.js +128 -0
  197. package/dist/cjs/index.js.map +7 -0
  198. package/dist/cjs/package.json +1 -0
  199. package/dist/cjs/privy/index.d.ts +52 -0
  200. package/dist/cjs/privy/index.d.ts.map +1 -0
  201. package/dist/cjs/privy/index.js +57 -0
  202. package/dist/cjs/privy/index.js.map +7 -0
  203. package/dist/client.d.ts +4 -2
  204. package/dist/client.d.ts.map +1 -1
  205. package/dist/constants.d.ts.map +1 -1
  206. package/dist/errors.d.ts +15 -1
  207. package/dist/errors.d.ts.map +1 -1
  208. package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts +44 -0
  209. package/dist/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -1
  210. package/dist/evm/abis/provisionerV2.d.ts +56 -0
  211. package/dist/evm/abis/provisionerV2.d.ts.map +1 -1
  212. package/dist/evm/adapters/aera.d.ts +1 -1
  213. package/dist/evm/adapters/aera.d.ts.map +1 -1
  214. package/dist/evm/adapters/index.d.ts +1 -1
  215. package/dist/evm/adapters/index.d.ts.map +1 -1
  216. package/dist/evm/adapters/morpho.d.ts +1 -1
  217. package/dist/evm/adapters/morpho.d.ts.map +1 -1
  218. package/dist/evm/adapters/types.d.ts +6 -2
  219. package/dist/evm/adapters/types.d.ts.map +1 -1
  220. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +11 -6
  221. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
  222. package/dist/evm/aeraContracts/readOptions.d.ts +8 -0
  223. package/dist/evm/aeraContracts/readOptions.d.ts.map +1 -0
  224. package/dist/evm/aeraContracts/v1.d.ts +2 -2
  225. package/dist/evm/aeraContracts/v1.d.ts.map +1 -1
  226. package/dist/evm/aeraContracts/v2.d.ts +396 -4
  227. package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
  228. package/dist/evm/aeraContracts.d.ts +11 -5
  229. package/dist/evm/aeraContracts.d.ts.map +1 -1
  230. package/dist/evm/deposit.d.ts +4 -2
  231. package/dist/evm/deposit.d.ts.map +1 -1
  232. package/dist/evm/depositQuote.d.ts +32 -0
  233. package/dist/evm/depositQuote.d.ts.map +1 -0
  234. package/dist/evm/depositReceiverApproval.d.ts +2 -2
  235. package/dist/evm/depositReceiverApproval.d.ts.map +1 -1
  236. package/dist/evm/index.d.ts +27 -17
  237. package/dist/evm/index.d.ts.map +1 -1
  238. package/dist/evm/index.js +88 -9
  239. package/dist/evm/index.js.map +7 -1
  240. package/dist/evm/tokenModes.d.ts +22 -0
  241. package/dist/evm/tokenModes.d.ts.map +1 -0
  242. package/dist/evm/userCurrentBalance.d.ts +6 -2
  243. package/dist/evm/userCurrentBalance.d.ts.map +1 -1
  244. package/dist/evm/vaults.d.ts +2 -9
  245. package/dist/evm/vaults.d.ts.map +1 -1
  246. package/dist/evm/withdraw.d.ts +10 -2
  247. package/dist/evm/withdraw.d.ts.map +1 -1
  248. package/dist/evm/withdrawQuote.d.ts +135 -0
  249. package/dist/evm/withdrawQuote.d.ts.map +1 -0
  250. package/dist/index.d.ts +30 -22
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +139 -12
  253. package/dist/index.js.map +7 -1
  254. package/dist/manifest/vaults.json +1958 -0
  255. package/dist/privy/index.d.ts +1 -1
  256. package/dist/privy/index.d.ts.map +1 -1
  257. package/dist/privy/index.js +39 -48
  258. package/dist/privy/index.js.map +7 -1
  259. package/manifest/vaults.json +45 -460
  260. package/package.json +43 -9
  261. package/src/api/client.ts +104 -7
  262. package/src/api/generated.ts +621 -14
  263. package/src/api/index.ts +13 -0
  264. package/src/client.ts +4 -1
  265. package/src/constants.ts +2 -0
  266. package/src/errors.ts +39 -2
  267. package/src/evm/abis/priceAndFeeCalculatorV2.ts +22 -0
  268. package/src/evm/abis/provisionerV2.ts +33 -0
  269. package/src/evm/adapters/aera.ts +64 -34
  270. package/src/evm/adapters/types.ts +4 -0
  271. package/src/evm/aeraContracts/priceAndFeeCalculator.ts +72 -5
  272. package/src/evm/aeraContracts/readOptions.ts +3 -0
  273. package/src/evm/aeraContracts/v2.ts +273 -41
  274. package/src/evm/aeraContracts.ts +81 -8
  275. package/src/evm/deposit.ts +21 -8
  276. package/src/evm/depositQuote.ts +137 -0
  277. package/src/evm/index.ts +41 -0
  278. package/src/evm/tokenModes.ts +54 -0
  279. package/src/evm/userCurrentBalance.ts +12 -1
  280. package/src/evm/vaults.ts +0 -7
  281. package/src/evm/withdraw.ts +131 -7
  282. package/src/evm/withdrawQuote.ts +434 -0
  283. package/src/index.ts +26 -1
  284. package/dist/api/activity.js +0 -154
  285. package/dist/api/activity.js.map +0 -1
  286. package/dist/api/caip.js +0 -38
  287. package/dist/api/caip.js.map +0 -1
  288. package/dist/api/client.js +0 -109
  289. package/dist/api/client.js.map +0 -1
  290. package/dist/api/decimal.js +0 -44
  291. package/dist/api/decimal.js.map +0 -1
  292. package/dist/api/errors.js +0 -41
  293. package/dist/api/errors.js.map +0 -1
  294. package/dist/api/generated.js +0 -6
  295. package/dist/api/generated.js.map +0 -1
  296. package/dist/api/http.js +0 -39
  297. package/dist/api/http.js.map +0 -1
  298. package/dist/api/positionHistory.js +0 -126
  299. package/dist/api/positionHistory.js.map +0 -1
  300. package/dist/attribution/erc8021.js +0 -17
  301. package/dist/attribution/erc8021.js.map +0 -1
  302. package/dist/attribution/index.js +0 -45
  303. package/dist/attribution/index.js.map +0 -1
  304. package/dist/client.js +0 -72
  305. package/dist/client.js.map +0 -1
  306. package/dist/constants.js +0 -28
  307. package/dist/constants.js.map +0 -1
  308. package/dist/errors.js +0 -115
  309. package/dist/errors.js.map +0 -1
  310. package/dist/evm/abis/erc20.js +0 -30
  311. package/dist/evm/abis/erc20.js.map +0 -1
  312. package/dist/evm/abis/erc4626.js +0 -70
  313. package/dist/evm/abis/erc4626.js.map +0 -1
  314. package/dist/evm/abis/multiDepositorVault.js +0 -587
  315. package/dist/evm/abis/multiDepositorVault.js.map +0 -1
  316. package/dist/evm/abis/priceAndFeeCalculator.js +0 -490
  317. package/dist/evm/abis/priceAndFeeCalculator.js.map +0 -1
  318. package/dist/evm/abis/priceAndFeeCalculatorV2.js +0 -119
  319. package/dist/evm/abis/priceAndFeeCalculatorV2.js.map +0 -1
  320. package/dist/evm/abis/provisioner.js +0 -2768
  321. package/dist/evm/abis/provisioner.js.map +0 -1
  322. package/dist/evm/abis/provisionerV2.js +0 -262
  323. package/dist/evm/abis/provisionerV2.js.map +0 -1
  324. package/dist/evm/adapters/aera.js +0 -249
  325. package/dist/evm/adapters/aera.js.map +0 -1
  326. package/dist/evm/adapters/index.js +0 -14
  327. package/dist/evm/adapters/index.js.map +0 -1
  328. package/dist/evm/adapters/morpho.js +0 -79
  329. package/dist/evm/adapters/morpho.js.map +0 -1
  330. package/dist/evm/adapters/types.js +0 -2
  331. package/dist/evm/adapters/types.js.map +0 -1
  332. package/dist/evm/aeraContracts/priceAndFeeCalculator.js +0 -140
  333. package/dist/evm/aeraContracts/priceAndFeeCalculator.js.map +0 -1
  334. package/dist/evm/aeraContracts/v1.js +0 -59
  335. package/dist/evm/aeraContracts/v1.js.map +0 -1
  336. package/dist/evm/aeraContracts/v2.js +0 -217
  337. package/dist/evm/aeraContracts/v2.js.map +0 -1
  338. package/dist/evm/aeraContracts.js +0 -134
  339. package/dist/evm/aeraContracts.js.map +0 -1
  340. package/dist/evm/deposit.js +0 -109
  341. package/dist/evm/deposit.js.map +0 -1
  342. package/dist/evm/depositReceiverApproval.js +0 -32
  343. package/dist/evm/depositReceiverApproval.js.map +0 -1
  344. package/dist/evm/operationMode.js +0 -41
  345. package/dist/evm/operationMode.js.map +0 -1
  346. package/dist/evm/types.js +0 -5
  347. package/dist/evm/types.js.map +0 -1
  348. package/dist/evm/userCurrentBalance.js +0 -211
  349. package/dist/evm/userCurrentBalance.js.map +0 -1
  350. package/dist/evm/vaults.js +0 -75
  351. package/dist/evm/vaults.js.map +0 -1
  352. package/dist/evm/withdraw.js +0 -97
  353. package/dist/evm/withdraw.js.map +0 -1
@@ -0,0 +1,491 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var aera_exports = {};
30
+ __export(aera_exports, {
31
+ aeraAdapter: () => aeraAdapter,
32
+ convertTokenAmountToUnits: () => convertTokenAmountToUnits,
33
+ convertUnitsToTokenAmount: () => convertUnitsToTokenAmount
34
+ });
35
+ module.exports = __toCommonJS(aera_exports);
36
+ var import_erc20 = require("../abis/erc20");
37
+ var import_aeraContracts = require("../aeraContracts");
38
+ var import_priceAndFeeCalculator = require("../aeraContracts/priceAndFeeCalculator");
39
+ var provisionerV1 = __toESM(require("../aeraContracts/v1"), 1);
40
+ var provisionerV2 = __toESM(require("../aeraContracts/v2"), 1);
41
+ var import_errors = require("../../errors");
42
+ var import_multiDepositorVault = require("../abis/multiDepositorVault");
43
+ var import_constants = require("../../constants");
44
+ var import_types = require("../types");
45
+ const convertTokenAmountToUnits = async (publicClient, tokenAmount, vaultAddress, tokenAddress) => {
46
+ const vaultContract = (0, import_aeraContracts.getMultiDepositorVault)(publicClient, vaultAddress);
47
+ if (vaultContract === void 0) return;
48
+ const calculatorAddress = await vaultContract.read.feeCalculator();
49
+ if (!calculatorAddress) return;
50
+ const calculatorVersion = await (0, import_aeraContracts.resolveContractVersion)(publicClient, calculatorAddress);
51
+ const unitsAmount = await (0, import_priceAndFeeCalculator.convertTokenToUnits)(
52
+ publicClient,
53
+ calculatorAddress,
54
+ calculatorVersion,
55
+ vaultAddress,
56
+ tokenAddress,
57
+ tokenAmount
58
+ );
59
+ return unitsAmount;
60
+ };
61
+ const convertUnitsToTokenAmount = async (publicClient, unitsAmount, vaultAddress, tokenAddress) => {
62
+ const vaultContract = (0, import_aeraContracts.getMultiDepositorVault)(publicClient, vaultAddress);
63
+ if (vaultContract === void 0) return;
64
+ const calculatorAddress = await vaultContract.read.feeCalculator();
65
+ if (!calculatorAddress) return;
66
+ const calculatorVersion = await (0, import_aeraContracts.resolveContractVersion)(publicClient, calculatorAddress);
67
+ return (0, import_priceAndFeeCalculator.convertUnitsToToken)(
68
+ publicClient,
69
+ calculatorAddress,
70
+ calculatorVersion,
71
+ vaultAddress,
72
+ tokenAddress,
73
+ unitsAmount
74
+ );
75
+ };
76
+ function subtractSolverTip(tokenAmount, solverTip) {
77
+ if (solverTip === 0n) return tokenAmount;
78
+ if (solverTip >= tokenAmount) {
79
+ throw new import_errors.InvalidSolverTipError(solverTip, tokenAmount);
80
+ }
81
+ return tokenAmount - solverTip;
82
+ }
83
+ function getRequestDeadline(expirationDays) {
84
+ const deadlineBuffer = expirationDays === void 0 ? import_constants.DEFAULT_REQUEST_DEADLINE_BUFFER : import_constants.DAY * expirationDays;
85
+ return BigInt(Math.ceil((/* @__PURE__ */ new Date()).getTime() / 1e3) + deadlineBuffer);
86
+ }
87
+ async function getDepositUnitsOut({
88
+ publicClient,
89
+ runtime,
90
+ vault,
91
+ token,
92
+ tokensIn,
93
+ isAsync
94
+ }) {
95
+ if (runtime.provisioner.version === import_types.ContractVersion.V2) {
96
+ return isAsync ? provisionerV2.getAsyncDepositUnitsOut(
97
+ publicClient,
98
+ runtime.provisioner.address,
99
+ runtime.feeCalculator.address,
100
+ runtime.feeCalculator.version,
101
+ vault,
102
+ token,
103
+ tokensIn
104
+ ) : provisionerV2.getSyncDepositUnitsOut(
105
+ publicClient,
106
+ runtime.provisioner.address,
107
+ runtime.feeCalculator.address,
108
+ runtime.feeCalculator.version,
109
+ vault,
110
+ token,
111
+ tokensIn
112
+ );
113
+ }
114
+ return provisionerV1.getAsyncDepositUnitsOut(
115
+ publicClient,
116
+ runtime.provisioner.address,
117
+ runtime.feeCalculator.address,
118
+ runtime.feeCalculator.version,
119
+ vault,
120
+ token,
121
+ tokensIn
122
+ );
123
+ }
124
+ function getAsyncRedeemTokenOut(publicClient, runtime, vault, token, unitsIn) {
125
+ return runtime.provisioner.version === import_types.ContractVersion.V2 ? provisionerV2.getAsyncRedeemTokenOut(
126
+ publicClient,
127
+ runtime.provisioner.address,
128
+ runtime.feeCalculator.address,
129
+ runtime.feeCalculator.version,
130
+ vault,
131
+ token,
132
+ unitsIn
133
+ ) : provisionerV1.getAsyncRedeemTokenOut(
134
+ publicClient,
135
+ runtime.provisioner.address,
136
+ runtime.feeCalculator.address,
137
+ runtime.feeCalculator.version,
138
+ vault,
139
+ token,
140
+ unitsIn
141
+ );
142
+ }
143
+ function getAsyncWithdrawUnitsIn(publicClient, runtime, vault, token, tokensOut) {
144
+ return runtime.provisioner.version === import_types.ContractVersion.V2 ? provisionerV2.getAsyncWithdrawUnitsIn(
145
+ publicClient,
146
+ runtime.provisioner.address,
147
+ runtime.feeCalculator.address,
148
+ runtime.feeCalculator.version,
149
+ vault,
150
+ token,
151
+ tokensOut
152
+ ) : provisionerV1.getAsyncWithdrawUnitsIn(
153
+ publicClient,
154
+ runtime.provisioner.address,
155
+ runtime.feeCalculator.address,
156
+ runtime.feeCalculator.version,
157
+ vault,
158
+ token,
159
+ tokensOut
160
+ );
161
+ }
162
+ function requireAeraRuntime(runtime) {
163
+ if (!runtime) {
164
+ throw new import_errors.UnsupportedFeatureError("Aera: runtime contracts were not resolved");
165
+ }
166
+ return runtime;
167
+ }
168
+ const aeraAdapter = {
169
+ async buildDeposit(params) {
170
+ const {
171
+ vault,
172
+ receiver,
173
+ amount,
174
+ account,
175
+ publicClient,
176
+ asset,
177
+ async: isAsync,
178
+ slippageBps = import_constants.DEFAULT_BPS,
179
+ solverTip = import_constants.DEFAULT_SOLVER_TIP,
180
+ maxPriceAge = import_constants.DEFAULT_MAX_PRICE_AGE,
181
+ aeraRuntime,
182
+ minUnitsOut: requestedMinUnitsOut
183
+ } = params;
184
+ const runtime = requireAeraRuntime(aeraRuntime);
185
+ const provisionerAddress = runtime.provisioner.address;
186
+ const isContractV2 = runtime.provisioner.version === import_types.ContractVersion.V2;
187
+ if (receiver !== account && !isContractV2) {
188
+ throw new import_errors.UnsupportedFeatureError("Aera: separate receiver address on V1");
189
+ }
190
+ if (!isAsync && !isContractV2) {
191
+ throw new import_errors.UnsupportedFeatureError("Aera: sync operations on V1");
192
+ }
193
+ const minUnitsOut = requestedMinUnitsOut ?? (0, import_aeraContracts.applySlippageDown)(
194
+ await getDepositUnitsOut({
195
+ publicClient,
196
+ runtime,
197
+ vault: vault.vaultAddress,
198
+ token: asset.address,
199
+ tokensIn: isAsync ? subtractSolverTip(amount, solverTip) : amount,
200
+ isAsync
201
+ }),
202
+ slippageBps
203
+ );
204
+ if (isAsync) {
205
+ const deadline = getRequestDeadline(vault.expirationDays);
206
+ return [
207
+ {
208
+ type: "requestDeposit",
209
+ ...isContractV2 ? provisionerV2.requestDepositTxRequest(
210
+ provisionerAddress,
211
+ asset.address,
212
+ amount,
213
+ minUnitsOut,
214
+ solverTip,
215
+ deadline,
216
+ maxPriceAge,
217
+ false,
218
+ receiver,
219
+ account
220
+ ) : provisionerV1.requestDepositTxRequest(
221
+ provisionerAddress,
222
+ asset.address,
223
+ amount,
224
+ minUnitsOut,
225
+ solverTip,
226
+ deadline,
227
+ maxPriceAge,
228
+ false,
229
+ account
230
+ )
231
+ }
232
+ ];
233
+ }
234
+ if (isContractV2) {
235
+ return [
236
+ {
237
+ type: "deposit",
238
+ ...provisionerV2.depositTxRequest(
239
+ provisionerAddress,
240
+ asset.address,
241
+ amount,
242
+ minUnitsOut,
243
+ receiver,
244
+ account
245
+ )
246
+ }
247
+ ];
248
+ }
249
+ throw new import_errors.UnimplementedFeatureError("Aera Sync Operations");
250
+ },
251
+ async buildWithdraw(params) {
252
+ const {
253
+ vault,
254
+ receiver,
255
+ account,
256
+ asset,
257
+ publicClient,
258
+ async: isAsync,
259
+ slippageBps = import_constants.DEFAULT_BPS,
260
+ solverTip = import_constants.DEFAULT_SOLVER_TIP,
261
+ maxPriceAge = import_constants.DEFAULT_MAX_PRICE_AGE,
262
+ aeraRuntime
263
+ } = params;
264
+ const runtime = requireAeraRuntime(aeraRuntime);
265
+ const provisionerAddress = runtime.provisioner.address;
266
+ const isContractV2 = runtime.provisioner.version === import_types.ContractVersion.V2;
267
+ if (receiver !== account && !isContractV2) {
268
+ throw new import_errors.UnsupportedFeatureError("Aera: separate receiver address on V1");
269
+ }
270
+ if (!isAsync) (0, import_aeraContracts.requireAeraSyncRedeemRuntime)(runtime);
271
+ const isV2ExactTokenWithdraw = isContractV2 && !isAsync && "amount" in params && params.amount != null;
272
+ let minTokenOut;
273
+ let maxUnitsIn;
274
+ let shares;
275
+ if (isContractV2 && !isAsync) {
276
+ const quote = params.syncWithdrawQuote;
277
+ if ("entireAmount" in params && params.entireAmount) {
278
+ const balance = await publicClient.readContract({
279
+ address: vault.vaultAddress,
280
+ abi: import_multiDepositorVault.multiDepositorVaultAbi,
281
+ functionName: "balanceOf",
282
+ args: [account]
283
+ });
284
+ if (quote !== void 0) {
285
+ if (quote.kind !== "redeem" || quote.shares !== balance) {
286
+ throw new import_errors.InvalidWithdrawParamsError();
287
+ }
288
+ }
289
+ shares = balance;
290
+ } else if ("shares" in params && params.shares != null) {
291
+ if (quote !== void 0 && (quote.kind !== "redeem" || quote.shares !== params.shares)) {
292
+ throw new import_errors.InvalidWithdrawParamsError();
293
+ }
294
+ shares = params.shares;
295
+ } else if (!("amount" in params && params.amount != null)) {
296
+ throw new import_errors.InvalidWithdrawParamsError();
297
+ }
298
+ if (isV2ExactTokenWithdraw) {
299
+ (0, import_errors.requireNonZeroSyncWithdrawBound)(params.amount, "tokensOut");
300
+ if (quote !== void 0) {
301
+ if (quote.kind !== "withdraw" || quote.tokensOut !== params.amount) {
302
+ throw new import_errors.InvalidWithdrawParamsError();
303
+ }
304
+ minTokenOut = quote.tokensOut;
305
+ maxUnitsIn = quote.maxUnitsIn;
306
+ } else {
307
+ minTokenOut = params.amount;
308
+ maxUnitsIn = (0, import_aeraContracts.applySlippageUp)(
309
+ await provisionerV2.getSyncWithdrawUnitsIn(
310
+ publicClient,
311
+ provisionerAddress,
312
+ runtime.feeCalculator.address,
313
+ runtime.feeCalculator.version,
314
+ vault.vaultAddress,
315
+ asset.address,
316
+ params.amount
317
+ ),
318
+ slippageBps
319
+ );
320
+ }
321
+ (0, import_errors.requireNonZeroSyncWithdrawBound)(maxUnitsIn, "maxUnitsIn");
322
+ } else {
323
+ if (shares === void 0) {
324
+ throw new import_errors.InvalidWithdrawParamsError();
325
+ }
326
+ (0, import_errors.requireNonZeroSyncWithdrawBound)(shares, "unitsIn");
327
+ if (quote !== void 0) {
328
+ if (quote.kind !== "redeem" || quote.shares !== shares) {
329
+ throw new import_errors.InvalidWithdrawParamsError();
330
+ }
331
+ minTokenOut = quote.minTokensOut;
332
+ } else {
333
+ const tokensOut = await provisionerV2.getSyncRedeemTokenOut(
334
+ publicClient,
335
+ provisionerAddress,
336
+ runtime.feeCalculator.address,
337
+ runtime.feeCalculator.version,
338
+ vault.vaultAddress,
339
+ asset.address,
340
+ shares
341
+ );
342
+ minTokenOut = (0, import_aeraContracts.applySlippageDown)(tokensOut, slippageBps);
343
+ }
344
+ (0, import_errors.requireNonZeroSyncWithdrawBound)(minTokenOut, "minTokensOut");
345
+ maxUnitsIn = shares;
346
+ }
347
+ } else {
348
+ if ("entireAmount" in params && params.entireAmount) {
349
+ shares = await publicClient.readContract({
350
+ address: vault.vaultAddress,
351
+ abi: import_multiDepositorVault.multiDepositorVaultAbi,
352
+ functionName: "balanceOf",
353
+ args: [account]
354
+ });
355
+ } else if ("amount" in params && params.amount != null) {
356
+ shares = await getAsyncWithdrawUnitsIn(
357
+ publicClient,
358
+ runtime,
359
+ vault.vaultAddress,
360
+ asset.address,
361
+ params.amount + solverTip
362
+ );
363
+ } else if ("shares" in params && params.shares != null) {
364
+ shares = params.shares;
365
+ } else {
366
+ throw new import_errors.InvalidWithdrawParamsError();
367
+ }
368
+ const tokenOutBeforeTip = await getAsyncRedeemTokenOut(
369
+ publicClient,
370
+ runtime,
371
+ vault.vaultAddress,
372
+ asset.address,
373
+ shares
374
+ );
375
+ minTokenOut = (0, import_aeraContracts.applySlippageDown)(subtractSolverTip(tokenOutBeforeTip, solverTip), slippageBps);
376
+ maxUnitsIn = shares;
377
+ }
378
+ const steps = [];
379
+ if (isAsync) {
380
+ if (shares === void 0) {
381
+ throw new import_errors.InvalidWithdrawParamsError();
382
+ }
383
+ const { sufficient } = await this.checkAllowance({
384
+ publicClient,
385
+ token: vault.vaultAddress,
386
+ owner: account,
387
+ spender: provisionerAddress,
388
+ amount: shares
389
+ });
390
+ if (!sufficient) {
391
+ steps.push(
392
+ this.buildApproval({
393
+ token: vault.vaultAddress,
394
+ spender: provisionerAddress,
395
+ amount: shares,
396
+ account
397
+ })
398
+ );
399
+ }
400
+ const deadline = getRequestDeadline(vault.expirationDays);
401
+ return [
402
+ ...steps,
403
+ {
404
+ type: "requestRedeem",
405
+ ...isContractV2 ? provisionerV2.requestRedeemTxRequest(
406
+ provisionerAddress,
407
+ asset.address,
408
+ shares,
409
+ minTokenOut,
410
+ solverTip,
411
+ deadline,
412
+ maxPriceAge,
413
+ false,
414
+ receiver,
415
+ account
416
+ ) : provisionerV1.requestRedeemTxRequest(
417
+ provisionerAddress,
418
+ asset.address,
419
+ shares,
420
+ minTokenOut,
421
+ solverTip,
422
+ deadline,
423
+ maxPriceAge,
424
+ false,
425
+ account
426
+ )
427
+ }
428
+ ];
429
+ }
430
+ if ("amount" in params && params.amount != null) {
431
+ return [
432
+ ...steps,
433
+ {
434
+ type: "withdraw",
435
+ ...provisionerV2.withdrawTxRequest(
436
+ provisionerAddress,
437
+ asset.address,
438
+ params.amount,
439
+ maxUnitsIn,
440
+ receiver,
441
+ account
442
+ )
443
+ }
444
+ ];
445
+ }
446
+ if (shares === void 0) {
447
+ throw new import_errors.InvalidWithdrawParamsError();
448
+ }
449
+ return [
450
+ ...steps,
451
+ {
452
+ type: "redeem",
453
+ ...provisionerV2.redeemTxRequest(
454
+ provisionerAddress,
455
+ asset.address,
456
+ shares,
457
+ minTokenOut,
458
+ receiver,
459
+ account
460
+ )
461
+ }
462
+ ];
463
+ },
464
+ async checkAllowance(params) {
465
+ const { publicClient, token, owner, spender, amount } = params;
466
+ const current = await publicClient.readContract({
467
+ address: token,
468
+ abi: import_erc20.erc20Abi,
469
+ functionName: "allowance",
470
+ args: [owner, spender]
471
+ });
472
+ return { sufficient: current >= amount, current };
473
+ },
474
+ buildApproval(params) {
475
+ return {
476
+ type: "approve",
477
+ address: params.token,
478
+ abi: import_erc20.erc20Abi,
479
+ functionName: "approve",
480
+ args: [params.spender, params.amount],
481
+ account: params.account
482
+ };
483
+ }
484
+ };
485
+ // Annotate the CommonJS export names for ESM import in node:
486
+ 0 && (module.exports = {
487
+ aeraAdapter,
488
+ convertTokenAmountToUnits,
489
+ convertUnitsToTokenAmount
490
+ });
491
+ //# sourceMappingURL=aera.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/evm/adapters/aera.ts"],
4
+ "sourcesContent": ["import { erc20Abi } from '../abis/erc20';\nimport {\n getMultiDepositorVault,\n applySlippageDown,\n applySlippageUp,\n requireAeraSyncRedeemRuntime,\n resolveContractVersion,\n type AeraRuntimeContracts,\n} from '../aeraContracts';\nimport { convertTokenToUnits, convertUnitsToToken } from '../aeraContracts/priceAndFeeCalculator';\nimport * as provisionerV1 from '../aeraContracts/v1';\nimport * as provisionerV2 from '../aeraContracts/v2';\nimport {\n InvalidWithdrawParamsError,\n InvalidSolverTipError,\n requireNonZeroSyncWithdrawBound,\n UnimplementedFeatureError,\n UnsupportedFeatureError,\n} from '../../errors';\nimport type {\n EvmProtocolAdapter,\n EvmTxStep,\n AdapterDepositParams,\n AdapterWithdrawParams,\n AllowanceParams,\n ApprovalParams,\n} from './types';\nimport type { Address, PublicClient } from 'viem';\nimport { multiDepositorVaultAbi } from '../abis/multiDepositorVault';\nimport {\n DEFAULT_BPS,\n DAY,\n DEFAULT_MAX_PRICE_AGE,\n DEFAULT_REQUEST_DEADLINE_BUFFER,\n DEFAULT_SOLVER_TIP,\n} from '../../constants';\nimport { ContractVersion } from '../types';\n\nexport const convertTokenAmountToUnits = async (\n publicClient: PublicClient,\n tokenAmount: bigint,\n vaultAddress: Address,\n tokenAddress: Address\n) => {\n const vaultContract = getMultiDepositorVault(publicClient, vaultAddress);\n if (vaultContract === undefined) return;\n\n const calculatorAddress = await vaultContract.read.feeCalculator();\n if (!calculatorAddress) return;\n const calculatorVersion = await resolveContractVersion(publicClient, calculatorAddress);\n\n const unitsAmount = await convertTokenToUnits(\n publicClient,\n calculatorAddress,\n calculatorVersion,\n vaultAddress,\n tokenAddress,\n tokenAmount\n );\n\n return unitsAmount;\n};\n\nexport const convertUnitsToTokenAmount = async (\n publicClient: PublicClient,\n unitsAmount: bigint,\n vaultAddress: Address,\n tokenAddress: Address\n) => {\n const vaultContract = getMultiDepositorVault(publicClient, vaultAddress);\n if (vaultContract === undefined) return;\n\n const calculatorAddress = await vaultContract.read.feeCalculator();\n if (!calculatorAddress) return;\n const calculatorVersion = await resolveContractVersion(publicClient, calculatorAddress);\n\n return convertUnitsToToken(\n publicClient,\n calculatorAddress,\n calculatorVersion,\n vaultAddress,\n tokenAddress,\n unitsAmount\n );\n};\n\nfunction subtractSolverTip(tokenAmount: bigint, solverTip: bigint): bigint {\n if (solverTip === 0n) return tokenAmount;\n if (solverTip >= tokenAmount) {\n throw new InvalidSolverTipError(solverTip, tokenAmount);\n }\n\n return tokenAmount - solverTip;\n}\n\nfunction getRequestDeadline(expirationDays?: number): bigint {\n const deadlineBuffer =\n expirationDays === undefined ? DEFAULT_REQUEST_DEADLINE_BUFFER : DAY * expirationDays;\n return BigInt(Math.ceil(new Date().getTime() / 1000) + deadlineBuffer);\n}\n\nasync function getDepositUnitsOut({\n publicClient,\n runtime,\n vault,\n token,\n tokensIn,\n isAsync,\n}: {\n publicClient: PublicClient;\n runtime: AeraRuntimeContracts;\n vault: Address;\n token: Address;\n tokensIn: bigint;\n isAsync: boolean;\n}): Promise<bigint> {\n if (runtime.provisioner.version === ContractVersion.V2) {\n return isAsync\n ? provisionerV2.getAsyncDepositUnitsOut(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n tokensIn\n )\n : provisionerV2.getSyncDepositUnitsOut(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n tokensIn\n );\n }\n\n return provisionerV1.getAsyncDepositUnitsOut(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n tokensIn\n );\n}\n\nfunction getAsyncRedeemTokenOut(\n publicClient: PublicClient,\n runtime: AeraRuntimeContracts,\n vault: Address,\n token: Address,\n unitsIn: bigint\n): Promise<bigint> {\n return runtime.provisioner.version === ContractVersion.V2\n ? provisionerV2.getAsyncRedeemTokenOut(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n unitsIn\n )\n : provisionerV1.getAsyncRedeemTokenOut(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n unitsIn\n );\n}\n\nfunction getAsyncWithdrawUnitsIn(\n publicClient: PublicClient,\n runtime: AeraRuntimeContracts,\n vault: Address,\n token: Address,\n tokensOut: bigint\n): Promise<bigint> {\n return runtime.provisioner.version === ContractVersion.V2\n ? provisionerV2.getAsyncWithdrawUnitsIn(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n tokensOut\n )\n : provisionerV1.getAsyncWithdrawUnitsIn(\n publicClient,\n runtime.provisioner.address,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault,\n token,\n tokensOut\n );\n}\n\nfunction requireAeraRuntime(runtime: AeraRuntimeContracts | undefined): AeraRuntimeContracts {\n if (!runtime) {\n throw new UnsupportedFeatureError('Aera: runtime contracts were not resolved');\n }\n\n return runtime;\n}\n\nexport const aeraAdapter: EvmProtocolAdapter = {\n async buildDeposit(params: AdapterDepositParams): Promise<EvmTxStep[]> {\n const {\n vault,\n receiver,\n amount,\n account,\n publicClient,\n asset,\n async: isAsync,\n slippageBps = DEFAULT_BPS,\n solverTip = DEFAULT_SOLVER_TIP,\n maxPriceAge = DEFAULT_MAX_PRICE_AGE,\n aeraRuntime,\n minUnitsOut: requestedMinUnitsOut,\n } = params;\n\n const runtime = requireAeraRuntime(aeraRuntime);\n const provisionerAddress = runtime.provisioner.address;\n const isContractV2 = runtime.provisioner.version === ContractVersion.V2;\n if (receiver !== account && !isContractV2) {\n throw new UnsupportedFeatureError('Aera: separate receiver address on V1');\n }\n\n if (!isAsync && !isContractV2) {\n throw new UnsupportedFeatureError('Aera: sync operations on V1');\n }\n\n const minUnitsOut =\n requestedMinUnitsOut ??\n applySlippageDown(\n await getDepositUnitsOut({\n publicClient,\n runtime,\n vault: vault.vaultAddress,\n token: asset.address,\n tokensIn: isAsync ? subtractSolverTip(amount, solverTip) : amount,\n isAsync,\n }),\n slippageBps\n );\n\n if (isAsync) {\n const deadline = getRequestDeadline(vault.expirationDays);\n return [\n {\n type: 'requestDeposit',\n ...(isContractV2\n ? provisionerV2.requestDepositTxRequest(\n provisionerAddress,\n asset.address,\n amount,\n minUnitsOut,\n solverTip,\n deadline,\n maxPriceAge,\n false,\n receiver,\n account\n )\n : provisionerV1.requestDepositTxRequest(\n provisionerAddress,\n asset.address,\n amount,\n minUnitsOut,\n solverTip,\n deadline,\n maxPriceAge,\n false,\n account\n )),\n },\n ];\n }\n\n if (isContractV2) {\n return [\n {\n type: 'deposit',\n ...provisionerV2.depositTxRequest(\n provisionerAddress,\n asset.address,\n amount,\n minUnitsOut,\n receiver,\n account\n ),\n },\n ];\n }\n\n throw new UnimplementedFeatureError('Aera Sync Operations');\n },\n\n async buildWithdraw(params: AdapterWithdrawParams): Promise<EvmTxStep[]> {\n const {\n vault,\n receiver,\n account,\n asset,\n publicClient,\n async: isAsync,\n slippageBps = DEFAULT_BPS,\n solverTip = DEFAULT_SOLVER_TIP,\n maxPriceAge = DEFAULT_MAX_PRICE_AGE,\n aeraRuntime,\n } = params;\n\n const runtime = requireAeraRuntime(aeraRuntime);\n const provisionerAddress = runtime.provisioner.address;\n const isContractV2 = runtime.provisioner.version === ContractVersion.V2;\n if (receiver !== account && !isContractV2) {\n throw new UnsupportedFeatureError('Aera: separate receiver address on V1');\n }\n\n if (!isAsync) requireAeraSyncRedeemRuntime(runtime);\n\n const isV2ExactTokenWithdraw =\n isContractV2 && !isAsync && 'amount' in params && params.amount != null;\n let minTokenOut: bigint;\n let maxUnitsIn: bigint;\n let shares: bigint | undefined;\n\n if (isContractV2 && !isAsync) {\n const quote = params.syncWithdrawQuote;\n if ('entireAmount' in params && params.entireAmount) {\n const balance = await publicClient.readContract({\n address: vault.vaultAddress,\n abi: multiDepositorVaultAbi,\n functionName: 'balanceOf',\n args: [account],\n });\n if (quote !== undefined) {\n if (quote.kind !== 'redeem' || quote.shares !== balance) {\n throw new InvalidWithdrawParamsError();\n }\n }\n shares = balance;\n } else if ('shares' in params && params.shares != null) {\n if (quote !== undefined && (quote.kind !== 'redeem' || quote.shares !== params.shares)) {\n throw new InvalidWithdrawParamsError();\n }\n shares = params.shares;\n } else if (!('amount' in params && params.amount != null)) {\n throw new InvalidWithdrawParamsError();\n }\n\n if (isV2ExactTokenWithdraw) {\n requireNonZeroSyncWithdrawBound(params.amount, 'tokensOut');\n if (quote !== undefined) {\n if (quote.kind !== 'withdraw' || quote.tokensOut !== params.amount) {\n throw new InvalidWithdrawParamsError();\n }\n minTokenOut = quote.tokensOut;\n maxUnitsIn = quote.maxUnitsIn;\n } else {\n minTokenOut = params.amount;\n maxUnitsIn = applySlippageUp(\n await provisionerV2.getSyncWithdrawUnitsIn(\n publicClient,\n provisionerAddress,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault.vaultAddress,\n asset.address,\n params.amount\n ),\n slippageBps\n );\n }\n requireNonZeroSyncWithdrawBound(maxUnitsIn, 'maxUnitsIn');\n } else {\n if (shares === undefined) {\n throw new InvalidWithdrawParamsError();\n }\n\n requireNonZeroSyncWithdrawBound(shares, 'unitsIn');\n if (quote !== undefined) {\n if (quote.kind !== 'redeem' || quote.shares !== shares) {\n throw new InvalidWithdrawParamsError();\n }\n minTokenOut = quote.minTokensOut;\n } else {\n const tokensOut = await provisionerV2.getSyncRedeemTokenOut(\n publicClient,\n provisionerAddress,\n runtime.feeCalculator.address,\n runtime.feeCalculator.version,\n vault.vaultAddress,\n asset.address,\n shares\n );\n minTokenOut = applySlippageDown(tokensOut, slippageBps);\n }\n requireNonZeroSyncWithdrawBound(minTokenOut, 'minTokensOut');\n maxUnitsIn = shares;\n }\n } else {\n if ('entireAmount' in params && params.entireAmount) {\n shares = await publicClient.readContract({\n address: vault.vaultAddress,\n abi: multiDepositorVaultAbi,\n functionName: 'balanceOf',\n args: [account],\n });\n } else if ('amount' in params && params.amount != null) {\n shares = await getAsyncWithdrawUnitsIn(\n publicClient,\n runtime,\n vault.vaultAddress,\n asset.address,\n params.amount + solverTip\n );\n } else if ('shares' in params && params.shares != null) {\n shares = params.shares;\n } else {\n throw new InvalidWithdrawParamsError();\n }\n\n const tokenOutBeforeTip = await getAsyncRedeemTokenOut(\n publicClient,\n runtime,\n vault.vaultAddress,\n asset.address,\n shares\n );\n minTokenOut = applySlippageDown(subtractSolverTip(tokenOutBeforeTip, solverTip), slippageBps);\n maxUnitsIn = shares;\n }\n\n const steps: EvmTxStep[] = [];\n\n if (isAsync) {\n if (shares === undefined) {\n throw new InvalidWithdrawParamsError();\n }\n\n // Only async requestRedeem needs a vault unit allowance: the provisioner\n // pulls units from the user. V2 sync redeem/withdraw exits through the\n // vault and burns the caller's units directly, so no approval is needed.\n const { sufficient } = await this.checkAllowance({\n publicClient,\n token: vault.vaultAddress,\n owner: account,\n spender: provisionerAddress,\n amount: shares,\n });\n\n if (!sufficient) {\n steps.push(\n this.buildApproval({\n token: vault.vaultAddress,\n spender: provisionerAddress,\n amount: shares,\n account,\n })\n );\n }\n\n const deadline = getRequestDeadline(vault.expirationDays);\n\n return [\n ...steps,\n {\n type: 'requestRedeem',\n ...(isContractV2\n ? provisionerV2.requestRedeemTxRequest(\n provisionerAddress,\n asset.address,\n shares,\n minTokenOut,\n solverTip,\n deadline,\n maxPriceAge,\n false,\n receiver,\n account\n )\n : provisionerV1.requestRedeemTxRequest(\n provisionerAddress,\n asset.address,\n shares,\n minTokenOut,\n solverTip,\n deadline,\n maxPriceAge,\n false,\n account\n )),\n },\n ];\n }\n\n if ('amount' in params && params.amount != null) {\n return [\n ...steps,\n {\n type: 'withdraw',\n ...provisionerV2.withdrawTxRequest(\n provisionerAddress,\n asset.address,\n params.amount,\n maxUnitsIn,\n receiver,\n account\n ),\n },\n ];\n }\n\n if (shares === undefined) {\n throw new InvalidWithdrawParamsError();\n }\n\n return [\n ...steps,\n {\n type: 'redeem',\n ...provisionerV2.redeemTxRequest(\n provisionerAddress,\n asset.address,\n shares,\n minTokenOut,\n receiver,\n account\n ),\n },\n ];\n },\n\n async checkAllowance(params: AllowanceParams) {\n const { publicClient, token, owner, spender, amount } = params;\n const current = await publicClient.readContract({\n address: token,\n abi: erc20Abi,\n functionName: 'allowance',\n args: [owner, spender],\n });\n\n return { sufficient: current >= amount, current };\n },\n\n buildApproval(params: ApprovalParams): EvmTxStep {\n return {\n type: 'approve',\n address: params.token,\n abi: erc20Abi,\n functionName: 'approve',\n args: [params.spender, params.amount],\n account: params.account,\n };\n },\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { EvmProtocolAdapter } from "./types.js";
2
+ export declare function getAdapter(protocol: string): EvmProtocolAdapter;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/evm/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAgB;AAElD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAS/D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var adapters_exports = {};
20
+ __export(adapters_exports, {
21
+ getAdapter: () => getAdapter
22
+ });
23
+ module.exports = __toCommonJS(adapters_exports);
24
+ var import_aera = require("./aera");
25
+ var import_morpho = require("./morpho");
26
+ var import_errors = require("../../errors");
27
+ function getAdapter(protocol) {
28
+ switch (protocol) {
29
+ case "aera":
30
+ return import_aera.aeraAdapter;
31
+ case "morpho":
32
+ return import_morpho.morphoAdapter;
33
+ default:
34
+ throw new import_errors.UnsupportedProtocolError(protocol);
35
+ }
36
+ }
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ getAdapter
40
+ });
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/evm/adapters/index.ts"],
4
+ "sourcesContent": ["import { aeraAdapter } from './aera';\nimport { morphoAdapter } from './morpho';\nimport { UnsupportedProtocolError } from '../../errors';\nimport type { EvmProtocolAdapter } from './types';\n\nexport function getAdapter(protocol: string): EvmProtocolAdapter {\n switch (protocol) {\n case 'aera':\n return aeraAdapter;\n case 'morpho':\n return morphoAdapter;\n default:\n throw new UnsupportedProtocolError(protocol);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA4B;AAC5B,oBAA8B;AAC9B,oBAAyC;AAGlC,SAAS,WAAW,UAAsC;AAC/D,UAAQ,UAAU;AAAA,IAChB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,YAAM,IAAI,uCAAyB,QAAQ;AAAA,EAC/C;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { EvmProtocolAdapter } from "./types.js";
2
+ export declare const morphoAdapter: EvmProtocolAdapter;
3
+ //# sourceMappingURL=morpho.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morpho.d.ts","sourceRoot":"","sources":["../../../../src/evm/adapters/morpho.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAMnB,mBAAgB;AAKjB,eAAO,MAAM,aAAa,EAAE,kBA+E3B,CAAC"}