@gauntlet-xyz/sdk 2.5.0 → 3.1.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 (362) hide show
  1. package/README.md +121 -7
  2. package/dist/api/activity.d.ts +4 -2
  3. package/dist/api/activity.d.ts.map +1 -1
  4. package/dist/api/activityRows.d.ts +11 -0
  5. package/dist/api/activityRows.d.ts.map +1 -0
  6. package/dist/api/caip.d.ts +1 -1
  7. package/dist/api/caip.d.ts.map +1 -1
  8. package/dist/api/client.d.ts +43 -5
  9. package/dist/api/client.d.ts.map +1 -1
  10. package/dist/api/decimal.d.ts.map +1 -1
  11. package/dist/api/errors.d.ts +1 -1
  12. package/dist/api/errors.d.ts.map +1 -1
  13. package/dist/api/generated.d.ts +570 -7
  14. package/dist/api/generated.d.ts.map +1 -1
  15. package/dist/api/http.d.ts.map +1 -1
  16. package/dist/api/index.d.ts +13 -13
  17. package/dist/api/index.d.ts.map +1 -1
  18. package/dist/api/index.js +47 -8
  19. package/dist/api/index.js.map +7 -1
  20. package/dist/api/positionHistory.d.ts +1 -1
  21. package/dist/api/positionHistory.d.ts.map +1 -1
  22. package/dist/attribution/index.d.ts +8 -5
  23. package/dist/attribution/index.d.ts.map +1 -1
  24. package/dist/chunk-JJOLVL5V.js +546 -0
  25. package/dist/chunk-JJOLVL5V.js.map +7 -0
  26. package/dist/chunk-JRSNLXFY.js +2009 -0
  27. package/dist/chunk-JRSNLXFY.js.map +7 -0
  28. package/dist/chunk-MEKISE2T.js +367 -0
  29. package/dist/chunk-MEKISE2T.js.map +7 -0
  30. package/dist/chunk-YQXTLIJA.js +4477 -0
  31. package/dist/chunk-YQXTLIJA.js.map +7 -0
  32. package/dist/cjs/api/activity.d.ts +72 -0
  33. package/dist/cjs/api/activity.d.ts.map +1 -0
  34. package/dist/cjs/api/activity.js +138 -0
  35. package/dist/cjs/api/activity.js.map +7 -0
  36. package/dist/cjs/api/activityRows.d.ts +11 -0
  37. package/dist/cjs/api/activityRows.d.ts.map +1 -0
  38. package/dist/cjs/api/activityRows.js +139 -0
  39. package/dist/cjs/api/activityRows.js.map +7 -0
  40. package/dist/cjs/api/caip.d.ts +29 -0
  41. package/dist/cjs/api/caip.d.ts.map +1 -0
  42. package/dist/cjs/api/caip.js +61 -0
  43. package/dist/cjs/api/caip.js.map +7 -0
  44. package/dist/cjs/api/client.d.ts +173 -0
  45. package/dist/cjs/api/client.d.ts.map +1 -0
  46. package/dist/cjs/api/client.js +199 -0
  47. package/dist/cjs/api/client.js.map +7 -0
  48. package/dist/cjs/api/decimal.d.ts +21 -0
  49. package/dist/cjs/api/decimal.d.ts.map +1 -0
  50. package/dist/cjs/api/decimal.js +61 -0
  51. package/dist/cjs/api/decimal.js.map +7 -0
  52. package/dist/cjs/api/errors.d.ts +32 -0
  53. package/dist/cjs/api/errors.d.ts.map +1 -0
  54. package/dist/cjs/api/errors.js +80 -0
  55. package/dist/cjs/api/errors.js.map +7 -0
  56. package/dist/cjs/api/generated.d.ts +2068 -0
  57. package/dist/cjs/api/generated.d.ts.map +1 -0
  58. package/dist/cjs/api/generated.js +17 -0
  59. package/dist/cjs/api/generated.js.map +7 -0
  60. package/dist/cjs/api/http.d.ts +16 -0
  61. package/dist/cjs/api/http.d.ts.map +1 -0
  62. package/dist/cjs/api/http.js +65 -0
  63. package/dist/cjs/api/http.js.map +7 -0
  64. package/dist/cjs/api/index.d.ts +14 -0
  65. package/dist/cjs/api/index.d.ts.map +1 -0
  66. package/dist/cjs/api/index.js +73 -0
  67. package/dist/cjs/api/index.js.map +7 -0
  68. package/dist/cjs/api/positionHistory.d.ts +44 -0
  69. package/dist/cjs/api/positionHistory.d.ts.map +1 -0
  70. package/dist/cjs/api/positionHistory.js +144 -0
  71. package/dist/cjs/api/positionHistory.js.map +7 -0
  72. package/dist/cjs/attribution/erc8021.d.ts +9 -0
  73. package/dist/cjs/attribution/erc8021.d.ts.map +1 -0
  74. package/dist/cjs/attribution/erc8021.js +37 -0
  75. package/dist/cjs/attribution/erc8021.js.map +7 -0
  76. package/dist/cjs/attribution/index.d.ts +28 -0
  77. package/dist/cjs/attribution/index.d.ts.map +1 -0
  78. package/dist/cjs/attribution/index.js +70 -0
  79. package/dist/cjs/attribution/index.js.map +7 -0
  80. package/dist/cjs/client.d.ts +72 -0
  81. package/dist/cjs/client.d.ts.map +1 -0
  82. package/dist/cjs/client.js +80 -0
  83. package/dist/cjs/client.js.map +7 -0
  84. package/dist/cjs/constants.d.ts +16 -0
  85. package/dist/cjs/constants.d.ts.map +1 -0
  86. package/dist/cjs/constants.js +83 -0
  87. package/dist/cjs/constants.js.map +7 -0
  88. package/dist/cjs/errors.d.ts +85 -0
  89. package/dist/cjs/errors.d.ts.map +1 -0
  90. package/dist/cjs/errors.js +210 -0
  91. package/dist/cjs/errors.js.map +7 -0
  92. package/dist/cjs/evm/abis/erc20.d.ts +41 -0
  93. package/dist/cjs/evm/abis/erc20.d.ts.map +1 -0
  94. package/dist/cjs/evm/abis/erc20.js +57 -0
  95. package/dist/cjs/evm/abis/erc20.js.map +7 -0
  96. package/dist/cjs/evm/abis/erc4626.d.ts +105 -0
  97. package/dist/cjs/evm/abis/erc4626.d.ts.map +1 -0
  98. package/dist/cjs/evm/abis/erc4626.js +97 -0
  99. package/dist/cjs/evm/abis/erc4626.js.map +7 -0
  100. package/dist/cjs/evm/abis/multiDepositorVault.d.ts +1048 -0
  101. package/dist/cjs/evm/abis/multiDepositorVault.d.ts.map +1 -0
  102. package/dist/cjs/evm/abis/multiDepositorVault.js +614 -0
  103. package/dist/cjs/evm/abis/multiDepositorVault.js.map +7 -0
  104. package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts +910 -0
  105. package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts.map +1 -0
  106. package/dist/cjs/evm/abis/priceAndFeeCalculator.js +517 -0
  107. package/dist/cjs/evm/abis/priceAndFeeCalculator.js.map +7 -0
  108. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts +277 -0
  109. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -0
  110. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js +166 -0
  111. package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js.map +7 -0
  112. package/dist/cjs/evm/abis/provisioner.d.ts +4984 -0
  113. package/dist/cjs/evm/abis/provisioner.d.ts.map +1 -0
  114. package/dist/cjs/evm/abis/provisioner.js +2785 -0
  115. package/dist/cjs/evm/abis/provisioner.js.map +7 -0
  116. package/dist/cjs/evm/abis/provisionerV2.d.ts +740 -0
  117. package/dist/cjs/evm/abis/provisionerV2.d.ts.map +1 -0
  118. package/dist/cjs/evm/abis/provisionerV2.js +320 -0
  119. package/dist/cjs/evm/abis/provisionerV2.js.map +7 -0
  120. package/dist/cjs/evm/adapters/aera.d.ts +6 -0
  121. package/dist/cjs/evm/adapters/aera.d.ts.map +1 -0
  122. package/dist/cjs/evm/adapters/aera.js +500 -0
  123. package/dist/cjs/evm/adapters/aera.js.map +7 -0
  124. package/dist/cjs/evm/adapters/index.d.ts +3 -0
  125. package/dist/cjs/evm/adapters/index.d.ts.map +1 -0
  126. package/dist/cjs/evm/adapters/index.js +41 -0
  127. package/dist/cjs/evm/adapters/index.js.map +7 -0
  128. package/dist/cjs/evm/adapters/morpho.d.ts +3 -0
  129. package/dist/cjs/evm/adapters/morpho.d.ts.map +1 -0
  130. package/dist/cjs/evm/adapters/morpho.js +103 -0
  131. package/dist/cjs/evm/adapters/morpho.js.map +7 -0
  132. package/dist/cjs/evm/adapters/types.d.ts +85 -0
  133. package/dist/cjs/evm/adapters/types.d.ts.map +1 -0
  134. package/dist/cjs/evm/adapters/types.js +17 -0
  135. package/dist/cjs/evm/adapters/types.js.map +7 -0
  136. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts +46 -0
  137. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -0
  138. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js +223 -0
  139. package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js.map +7 -0
  140. package/dist/cjs/evm/aeraContracts/readOptions.d.ts +8 -0
  141. package/dist/cjs/evm/aeraContracts/readOptions.d.ts.map +1 -0
  142. package/dist/cjs/evm/aeraContracts/readOptions.js +31 -0
  143. package/dist/cjs/evm/aeraContracts/readOptions.js.map +7 -0
  144. package/dist/cjs/evm/aeraContracts/v1.d.ts +2317 -0
  145. package/dist/cjs/evm/aeraContracts/v1.d.ts.map +1 -0
  146. package/dist/cjs/evm/aeraContracts/v1.js +120 -0
  147. package/dist/cjs/evm/aeraContracts/v1.js.map +7 -0
  148. package/dist/cjs/evm/aeraContracts/v2.d.ts +4538 -0
  149. package/dist/cjs/evm/aeraContracts/v2.d.ts.map +1 -0
  150. package/dist/cjs/evm/aeraContracts/v2.js +449 -0
  151. package/dist/cjs/evm/aeraContracts/v2.js.map +7 -0
  152. package/dist/cjs/evm/aeraContracts.d.ts +33 -0
  153. package/dist/cjs/evm/aeraContracts.d.ts.map +1 -0
  154. package/dist/cjs/evm/aeraContracts.js +234 -0
  155. package/dist/cjs/evm/aeraContracts.js.map +7 -0
  156. package/dist/cjs/evm/deposit.d.ts +51 -0
  157. package/dist/cjs/evm/deposit.d.ts.map +1 -0
  158. package/dist/cjs/evm/deposit.js +142 -0
  159. package/dist/cjs/evm/deposit.js.map +7 -0
  160. package/dist/cjs/evm/depositQuote.d.ts +32 -0
  161. package/dist/cjs/evm/depositQuote.d.ts.map +1 -0
  162. package/dist/cjs/evm/depositQuote.js +97 -0
  163. package/dist/cjs/evm/depositQuote.js.map +7 -0
  164. package/dist/cjs/evm/depositReceiverApproval.d.ts +17 -0
  165. package/dist/cjs/evm/depositReceiverApproval.d.ts.map +1 -0
  166. package/dist/cjs/evm/depositReceiverApproval.js +71 -0
  167. package/dist/cjs/evm/depositReceiverApproval.js.map +7 -0
  168. package/dist/cjs/evm/index.d.ts +28 -0
  169. package/dist/cjs/evm/index.d.ts.map +1 -0
  170. package/dist/cjs/evm/index.js +116 -0
  171. package/dist/cjs/evm/index.js.map +7 -0
  172. package/dist/cjs/evm/operationMode.d.ts +9 -0
  173. package/dist/cjs/evm/operationMode.d.ts.map +1 -0
  174. package/dist/cjs/evm/operationMode.js +65 -0
  175. package/dist/cjs/evm/operationMode.js.map +7 -0
  176. package/dist/cjs/evm/tokenModes.d.ts +22 -0
  177. package/dist/cjs/evm/tokenModes.d.ts.map +1 -0
  178. package/dist/cjs/evm/tokenModes.js +47 -0
  179. package/dist/cjs/evm/tokenModes.js.map +7 -0
  180. package/dist/cjs/evm/types.d.ts +34 -0
  181. package/dist/cjs/evm/types.d.ts.map +1 -0
  182. package/dist/cjs/evm/types.js +32 -0
  183. package/dist/cjs/evm/types.js.map +7 -0
  184. package/dist/cjs/evm/userCurrentBalance.d.ts +69 -0
  185. package/dist/cjs/evm/userCurrentBalance.d.ts.map +1 -0
  186. package/dist/cjs/evm/userCurrentBalance.js +268 -0
  187. package/dist/cjs/evm/userCurrentBalance.js.map +7 -0
  188. package/dist/cjs/evm/vaults.d.ts +44 -0
  189. package/dist/cjs/evm/vaults.d.ts.map +1 -0
  190. package/dist/cjs/evm/vaults.js +78 -0
  191. package/dist/cjs/evm/vaults.js.map +7 -0
  192. package/dist/cjs/evm/withdraw.d.ts +75 -0
  193. package/dist/cjs/evm/withdraw.d.ts.map +1 -0
  194. package/dist/cjs/evm/withdraw.js +174 -0
  195. package/dist/cjs/evm/withdraw.js.map +7 -0
  196. package/dist/cjs/evm/withdrawQuote.d.ts +135 -0
  197. package/dist/cjs/evm/withdrawQuote.d.ts.map +1 -0
  198. package/dist/cjs/evm/withdrawQuote.js +257 -0
  199. package/dist/cjs/evm/withdrawQuote.js.map +7 -0
  200. package/dist/cjs/index.d.ts +31 -0
  201. package/dist/cjs/index.d.ts.map +1 -0
  202. package/dist/cjs/index.js +128 -0
  203. package/dist/cjs/index.js.map +7 -0
  204. package/dist/cjs/package.json +1 -0
  205. package/dist/cjs/privy/index.d.ts +52 -0
  206. package/dist/cjs/privy/index.d.ts.map +1 -0
  207. package/dist/cjs/privy/index.js +57 -0
  208. package/dist/cjs/privy/index.js.map +7 -0
  209. package/dist/client.d.ts +4 -2
  210. package/dist/client.d.ts.map +1 -1
  211. package/dist/constants.d.ts.map +1 -1
  212. package/dist/errors.d.ts +4 -1
  213. package/dist/errors.d.ts.map +1 -1
  214. package/dist/evm/adapters/aera.d.ts +1 -1
  215. package/dist/evm/adapters/aera.d.ts.map +1 -1
  216. package/dist/evm/adapters/index.d.ts +1 -1
  217. package/dist/evm/adapters/index.d.ts.map +1 -1
  218. package/dist/evm/adapters/morpho.d.ts +1 -1
  219. package/dist/evm/adapters/morpho.d.ts.map +1 -1
  220. package/dist/evm/adapters/types.d.ts +6 -3
  221. package/dist/evm/adapters/types.d.ts.map +1 -1
  222. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +1 -1
  223. package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
  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 +25 -4
  227. package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
  228. package/dist/evm/aeraContracts.d.ts +2 -2
  229. package/dist/evm/aeraContracts.d.ts.map +1 -1
  230. package/dist/evm/deposit.d.ts +7 -4
  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 -25
  237. package/dist/evm/index.d.ts.map +1 -1
  238. package/dist/evm/index.js +86 -12
  239. package/dist/evm/index.js.map +7 -1
  240. package/dist/evm/tokenModes.d.ts +2 -2
  241. package/dist/evm/tokenModes.d.ts.map +1 -1
  242. package/dist/evm/userCurrentBalance.d.ts +21 -3
  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 +5 -3
  247. package/dist/evm/withdraw.d.ts.map +1 -1
  248. package/dist/evm/withdrawQuote.d.ts +14 -6
  249. package/dist/evm/withdrawQuote.d.ts.map +1 -1
  250. package/dist/index.d.ts +30 -28
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +137 -14
  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 +22 -395
  260. package/package.json +43 -9
  261. package/src/api/activity.ts +18 -15
  262. package/src/api/activityRows.ts +143 -0
  263. package/src/api/caip.ts +3 -1
  264. package/src/api/client.ts +105 -6
  265. package/src/api/decimal.ts +1 -0
  266. package/src/api/generated.ts +570 -7
  267. package/src/api/http.ts +1 -0
  268. package/src/api/index.ts +8 -0
  269. package/src/api/positionHistory.ts +20 -5
  270. package/src/attribution/index.ts +6 -2
  271. package/src/client.ts +4 -1
  272. package/src/constants.ts +2 -0
  273. package/src/errors.ts +7 -0
  274. package/src/evm/adapters/aera.ts +40 -19
  275. package/src/evm/adapters/types.ts +3 -0
  276. package/src/evm/aeraContracts/v2.ts +124 -16
  277. package/src/evm/aeraContracts.ts +29 -14
  278. package/src/evm/deposit.ts +61 -18
  279. package/src/evm/depositQuote.ts +138 -0
  280. package/src/evm/depositReceiverApproval.ts +14 -9
  281. package/src/evm/index.ts +10 -1
  282. package/src/evm/userCurrentBalance.ts +155 -60
  283. package/src/evm/vaults.ts +0 -7
  284. package/src/evm/withdraw.ts +20 -1
  285. package/src/evm/withdrawQuote.ts +126 -51
  286. package/src/index.ts +11 -2
  287. package/dist/api/activity.js +0 -154
  288. package/dist/api/activity.js.map +0 -1
  289. package/dist/api/caip.js +0 -38
  290. package/dist/api/caip.js.map +0 -1
  291. package/dist/api/client.js +0 -119
  292. package/dist/api/client.js.map +0 -1
  293. package/dist/api/decimal.js +0 -44
  294. package/dist/api/decimal.js.map +0 -1
  295. package/dist/api/errors.js +0 -41
  296. package/dist/api/errors.js.map +0 -1
  297. package/dist/api/generated.js +0 -6
  298. package/dist/api/generated.js.map +0 -1
  299. package/dist/api/http.js +0 -39
  300. package/dist/api/http.js.map +0 -1
  301. package/dist/api/positionHistory.js +0 -126
  302. package/dist/api/positionHistory.js.map +0 -1
  303. package/dist/attribution/erc8021.js +0 -17
  304. package/dist/attribution/erc8021.js.map +0 -1
  305. package/dist/attribution/index.js +0 -45
  306. package/dist/attribution/index.js.map +0 -1
  307. package/dist/client.js +0 -72
  308. package/dist/client.js.map +0 -1
  309. package/dist/constants.js +0 -28
  310. package/dist/constants.js.map +0 -1
  311. package/dist/errors.js +0 -134
  312. package/dist/errors.js.map +0 -1
  313. package/dist/evm/abis/erc20.js +0 -30
  314. package/dist/evm/abis/erc20.js.map +0 -1
  315. package/dist/evm/abis/erc4626.js +0 -70
  316. package/dist/evm/abis/erc4626.js.map +0 -1
  317. package/dist/evm/abis/multiDepositorVault.js +0 -587
  318. package/dist/evm/abis/multiDepositorVault.js.map +0 -1
  319. package/dist/evm/abis/priceAndFeeCalculator.js +0 -490
  320. package/dist/evm/abis/priceAndFeeCalculator.js.map +0 -1
  321. package/dist/evm/abis/priceAndFeeCalculatorV2.js +0 -141
  322. package/dist/evm/abis/priceAndFeeCalculatorV2.js.map +0 -1
  323. package/dist/evm/abis/provisioner.js +0 -2768
  324. package/dist/evm/abis/provisioner.js.map +0 -1
  325. package/dist/evm/abis/provisionerV2.js +0 -295
  326. package/dist/evm/abis/provisionerV2.js.map +0 -1
  327. package/dist/evm/adapters/aera.js +0 -280
  328. package/dist/evm/adapters/aera.js.map +0 -1
  329. package/dist/evm/adapters/index.js +0 -14
  330. package/dist/evm/adapters/index.js.map +0 -1
  331. package/dist/evm/adapters/morpho.js +0 -79
  332. package/dist/evm/adapters/morpho.js.map +0 -1
  333. package/dist/evm/adapters/types.js +0 -2
  334. package/dist/evm/adapters/types.js.map +0 -1
  335. package/dist/evm/aeraContracts/priceAndFeeCalculator.js +0 -174
  336. package/dist/evm/aeraContracts/priceAndFeeCalculator.js.map +0 -1
  337. package/dist/evm/aeraContracts/readOptions.js +0 -4
  338. package/dist/evm/aeraContracts/readOptions.js.map +0 -1
  339. package/dist/evm/aeraContracts/v1.js +0 -59
  340. package/dist/evm/aeraContracts/v1.js.map +0 -1
  341. package/dist/evm/aeraContracts/v2.js +0 -273
  342. package/dist/evm/aeraContracts/v2.js.map +0 -1
  343. package/dist/evm/aeraContracts.js +0 -195
  344. package/dist/evm/aeraContracts.js.map +0 -1
  345. package/dist/evm/deposit.js +0 -109
  346. package/dist/evm/deposit.js.map +0 -1
  347. package/dist/evm/depositReceiverApproval.js +0 -32
  348. package/dist/evm/depositReceiverApproval.js.map +0 -1
  349. package/dist/evm/operationMode.js +0 -41
  350. package/dist/evm/operationMode.js.map +0 -1
  351. package/dist/evm/tokenModes.js +0 -34
  352. package/dist/evm/tokenModes.js.map +0 -1
  353. package/dist/evm/types.js +0 -5
  354. package/dist/evm/types.js.map +0 -1
  355. package/dist/evm/userCurrentBalance.js +0 -211
  356. package/dist/evm/userCurrentBalance.js.map +0 -1
  357. package/dist/evm/vaults.js +0 -75
  358. package/dist/evm/vaults.js.map +0 -1
  359. package/dist/evm/withdraw.js +0 -177
  360. package/dist/evm/withdraw.js.map +0 -1
  361. package/dist/evm/withdrawQuote.js +0 -164
  362. package/dist/evm/withdrawQuote.js.map +0 -1
@@ -1,177 +0,0 @@
1
- import { getAdapter } from './adapters';
2
- import { encodeTransactionWithAttribution } from '../attribution';
3
- import { AccountMismatchError, AccountRequiredError, VaultNotFoundError, UnsupportedAssetError, InvalidSlippageBPSError, InvalidWithdrawParamsError, } from '../errors';
4
- import { requireAeraSyncRedeemRuntime, resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
5
- import { resolveVault } from './vaults';
6
- import { DEFAULT_BPS, MAX_BPS } from '../constants';
7
- import { parseOperationMode, resolveOperationMode, resolveSyncOnlyOperationMode, } from './operationMode';
8
- import { ContractVersion } from './types';
9
- function validateWithdrawParams(params) {
10
- const modes = [
11
- 'amount' in params && params.amount != null,
12
- 'shares' in params && params.shares != null,
13
- 'entireAmount' in params && params.entireAmount === true,
14
- ].filter(Boolean).length;
15
- if (modes !== 1)
16
- throw new InvalidWithdrawParamsError();
17
- }
18
- function sameAddress(left, right) {
19
- return left.toLowerCase() === right.toLowerCase();
20
- }
21
- function validateSyncWithdrawQuote({ params, account, chainId, slippageBps, tokenAddress, }) {
22
- const quote = params.syncWithdrawQuote;
23
- if (quote === undefined)
24
- return;
25
- const { context } = quote;
26
- if (context.vaultId !== params.vaultId ||
27
- context.chainId !== chainId ||
28
- !sameAddress(context.tokenAddress, tokenAddress) ||
29
- context.slippageBps !== slippageBps) {
30
- throw new InvalidWithdrawParamsError();
31
- }
32
- if (context.account !== undefined && !sameAddress(context.account, account)) {
33
- throw new InvalidWithdrawParamsError();
34
- }
35
- switch (context.request.mode) {
36
- case 'amount':
37
- if (quote.kind !== 'withdraw' ||
38
- !('amount' in params && params.amount != null) ||
39
- context.request.amount !== params.amount ||
40
- quote.tokensOut !== params.amount) {
41
- throw new InvalidWithdrawParamsError();
42
- }
43
- return;
44
- case 'shares':
45
- if (quote.kind !== 'redeem' ||
46
- !('shares' in params && params.shares != null) ||
47
- context.request.shares !== params.shares ||
48
- quote.shares !== params.shares) {
49
- throw new InvalidWithdrawParamsError();
50
- }
51
- return;
52
- case 'entireAmount':
53
- if (quote.kind !== 'redeem' ||
54
- !('entireAmount' in params && params.entireAmount) ||
55
- !sameAddress(context.request.account, account)) {
56
- throw new InvalidWithdrawParamsError();
57
- }
58
- return;
59
- }
60
- }
61
- /**
62
- * Builds the ordered list of EVM transactions required to withdraw from a Gauntlet vault.
63
- *
64
- * Specify the withdrawal amount as one of: `shares` (vault units), `amount` (underlying
65
- * token amount), or `entireAmount: true` (full balance). Returns an ERC-20 approval
66
- * (only when needed for async redeem) followed by the withdraw or async redeem request,
67
- * each returned as a `PreparedTx` ready to be signed and sent.
68
- *
69
- * @param client - A configured `GauntletClient` instance with an EVM public client and wallet.
70
- * @param params - Withdrawal parameters including the vault identifier and exactly one of
71
- * `shares`, `amount`, or `entireAmount`, plus optional chain, asset symbol, deposit mode,
72
- * and receiver address.
73
- * @returns Ordered array of prepared transactions to execute in sequence.
74
- *
75
- * @throws {VaultNotFoundError} If the vault ID is not found in the manifest.
76
- * @throws {AccountRequiredError} If no wallet account is set on the client.
77
- * @throws {UnsupportedDepositModeError} If the requested withdrawal mode is not supported.
78
- * @throws {UnsupportedAssetError} If the specified asset symbol is not accepted by the vault.
79
- *
80
- * @example
81
- * ```ts
82
- * // Withdraw by token amount
83
- * const txs = await getWithdrawTx(client, {
84
- * vaultId: 'baseUsdcPrime',
85
- * amount: 50_000_000n, // 50 USDC (6 decimals)
86
- * });
87
- *
88
- * // Withdraw entire balance
89
- * const txs = await getWithdrawTx(client, {
90
- * vaultId: 'baseUsdcPrime',
91
- * entireAmount: true,
92
- * account: walletAddress,
93
- * });
94
- * ```
95
- */
96
- export async function getWithdrawTx(client, params) {
97
- validateWithdrawParams(params);
98
- if (params.slippageBps !== undefined &&
99
- (!Number.isInteger(params.slippageBps) ||
100
- params.slippageBps < 0 ||
101
- params.slippageBps > Number(MAX_BPS))) {
102
- throw new InvalidSlippageBPSError(params.slippageBps);
103
- }
104
- const resolved = await resolveVault(client, params.vaultId, params.chainId);
105
- if (!resolved)
106
- throw new VaultNotFoundError(params.vaultId);
107
- const chainId = params.chainId ?? resolved.vault.chainId;
108
- const account = client.wallet?.account?.address;
109
- if (!account)
110
- throw new AccountRequiredError();
111
- if ('entireAmount' in params && params.entireAmount && params.account !== undefined) {
112
- if (!sameAddress(params.account, account)) {
113
- throw new AccountMismatchError(account, params.account);
114
- }
115
- }
116
- const { vault, protocol } = resolved;
117
- const token = vault.supplyToken.length > 1
118
- ? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
119
- : vault.supplyToken[0];
120
- if (token === undefined) {
121
- throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
122
- }
123
- const adapter = getAdapter(protocol);
124
- const publicClient = client.getPublicClient(chainId);
125
- const requestedWithdrawMode = parseOperationMode(params.vaultId, params.depositMode);
126
- const slippageBps = params.slippageBps ?? params.syncWithdrawQuote?.context.slippageBps ?? DEFAULT_BPS;
127
- let modifiedDepositMode;
128
- let aeraRuntime;
129
- if (params.syncWithdrawQuote !== undefined) {
130
- if (protocol !== 'aera' || requestedWithdrawMode === 'async') {
131
- throw new InvalidWithdrawParamsError();
132
- }
133
- validateSyncWithdrawQuote({
134
- params,
135
- account,
136
- chainId,
137
- slippageBps,
138
- tokenAddress: token.address,
139
- });
140
- }
141
- if (protocol === 'aera') {
142
- aeraRuntime = await resolveAeraRuntimeContracts(publicClient, vault);
143
- if (aeraRuntime.provisioner.version === ContractVersion.V2 &&
144
- (requestedWithdrawMode === 'sync' || params.syncWithdrawQuote !== undefined)) {
145
- requireAeraSyncRedeemRuntime(aeraRuntime);
146
- }
147
- const tokenModeSupport = await resolveAeraTokenModeSupport(publicClient, aeraRuntime, token.address, { includeSyncModes: requestedWithdrawMode !== 'async' });
148
- modifiedDepositMode = resolveOperationMode(params.vaultId, params.syncWithdrawQuote !== undefined ? 'sync' : requestedWithdrawMode, {
149
- async: tokenModeSupport.asyncRedeem,
150
- sync: tokenModeSupport.syncRedeem,
151
- });
152
- if (modifiedDepositMode === 'sync')
153
- requireAeraSyncRedeemRuntime(aeraRuntime);
154
- }
155
- else {
156
- modifiedDepositMode = resolveSyncOnlyOperationMode(params.vaultId, requestedWithdrawMode);
157
- }
158
- const withdrawParams = {
159
- vault,
160
- receiver: params.receiver ?? account,
161
- account,
162
- async: modifiedDepositMode === 'async',
163
- asset: token,
164
- publicClient,
165
- slippageBps,
166
- solverTip: params.solverTip,
167
- maxPriceAge: params.maxPriceAge,
168
- aeraRuntime,
169
- syncWithdrawQuote: params.syncWithdrawQuote,
170
- ...('shares' in params && params.shares != null ? { shares: params.shares } : {}),
171
- ...('amount' in params && params.amount != null ? { amount: params.amount } : {}),
172
- ...('entireAmount' in params && params.entireAmount ? { entireAmount: true } : {}),
173
- };
174
- const steps = await adapter.buildWithdraw(withdrawParams);
175
- return await Promise.all(steps.map((step) => encodeTransactionWithAttribution(client, step)));
176
- }
177
- //# sourceMappingURL=withdraw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../src/evm/withdraw.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { AccountRequiredError, InvalidSlippageBPSError, InvalidWithdrawParamsError, requireNonZeroSyncWithdrawBound, UnsupportedAssetError, UnsupportedFeatureError, VaultNotFoundError, } from '../errors';
2
- import { DEFAULT_BPS, MAX_BPS } from '../constants';
3
- import { resolveVault } from './vaults';
4
- import { applySlippageDown, applySlippageUp, requireAeraSyncRedeemRuntime, resolveAeraRuntimeContracts, resolveAeraTokenModeSupport, } from './aeraContracts';
5
- import { multiDepositorVaultAbi } from './abis/multiDepositorVault';
6
- import { convertNumeraireToToken, convertTokenToNumeraire, } from './aeraContracts/priceAndFeeCalculator';
7
- import { getSyncRedeemEpochState, getSyncRedeemRate, getSyncRedeemTokenOut, getSyncWithdrawUnitsIn, getUserUnitsRefundableUntil, } from './aeraContracts/v2';
8
- import { resolveOperationMode } from './operationMode';
9
- function validateSyncWithdrawQuoteParams(params) {
10
- const modes = [
11
- 'amount' in params && params.amount != null,
12
- 'shares' in params && params.shares != null,
13
- 'entireAmount' in params && params.entireAmount === true,
14
- ].filter(Boolean).length;
15
- if (modes !== 1)
16
- throw new InvalidWithdrawParamsError();
17
- if ('entireAmount' in params && params.entireAmount === true && !params.account) {
18
- throw new AccountRequiredError();
19
- }
20
- }
21
- /**
22
- * Builds a live quote for an instant (sync) withdraw without sending a transaction.
23
- *
24
- * Surfaces everything the on-chain `redeem`/`withdraw` would apply or check but that a plain
25
- * transaction build does not pre-validate: the effective rate (including the price-age dynamic
26
- * premium), slippage bounds, the global per-epoch redeem capacity, and whether the caller's units
27
- * are still locked from a recent sync deposit.
28
- *
29
- * @throws {VaultNotFoundError} If the vault ID is not found.
30
- * @throws {UnsupportedAssetError} If the asset symbol is not accepted by the vault.
31
- * @throws {UnsupportedFeatureError} If the vault is not an Aera V2 deployment.
32
- * @throws {UnsupportedDepositModeError} If sync redeem is not enabled for the token.
33
- * @throws {StalePriceError} If the oracle price is too stale for an instant redeem.
34
- */
35
- export async function getSyncWithdrawQuote(client, params) {
36
- validateSyncWithdrawQuoteParams(params);
37
- if (params.slippageBps !== undefined &&
38
- (!Number.isInteger(params.slippageBps) ||
39
- params.slippageBps < 0 ||
40
- params.slippageBps > Number(MAX_BPS))) {
41
- throw new InvalidSlippageBPSError(params.slippageBps);
42
- }
43
- const slippageBps = params.slippageBps ?? DEFAULT_BPS;
44
- const resolved = await resolveVault(client, params.vaultId, params.chainId);
45
- if (!resolved)
46
- throw new VaultNotFoundError(params.vaultId);
47
- const { vault, protocol } = resolved;
48
- if (protocol !== 'aera') {
49
- throw new UnsupportedFeatureError('Sync withdraw quote is only available for Aera vaults');
50
- }
51
- const chainId = params.chainId ?? vault.chainId;
52
- const publicClient = client.getPublicClient(chainId);
53
- const token = vault.supplyToken.length > 1
54
- ? vault.supplyToken.find((tInfo) => tInfo.symbol === params.assetSymbol)
55
- : vault.supplyToken[0];
56
- if (token === undefined) {
57
- throw new UnsupportedAssetError(params.assetSymbol ?? 'unknown', params.vaultId);
58
- }
59
- const quoteBlock = await publicClient.getBlock();
60
- if (quoteBlock.number === null) {
61
- throw new UnsupportedFeatureError('Aera: sync withdraw quote requires a numbered block');
62
- }
63
- const quoteReadContext = {
64
- blockNumber: quoteBlock.number,
65
- blockTimestamp: BigInt(quoteBlock.timestamp),
66
- };
67
- const runtime = await resolveAeraRuntimeContracts(publicClient, vault, quoteReadContext);
68
- requireAeraSyncRedeemRuntime(runtime);
69
- const support = await resolveAeraTokenModeSupport(publicClient, runtime, token.address, quoteReadContext);
70
- resolveOperationMode(params.vaultId, 'sync', {
71
- async: support.asyncRedeem,
72
- sync: support.syncRedeem,
73
- });
74
- const provisioner = runtime.provisioner.address;
75
- const feeCalculator = runtime.feeCalculator.address;
76
- const feeVersion = runtime.feeCalculator.version;
77
- const vaultAddress = vault.vaultAddress;
78
- const rate = await getSyncRedeemRate(publicClient, provisioner, vaultAddress, token.address, feeCalculator, quoteReadContext);
79
- let kind;
80
- let shares;
81
- let tokensOut;
82
- let minTokensOut;
83
- let maxUnitsIn;
84
- let request;
85
- if ('amount' in params && params.amount != null) {
86
- // Exact token out: shares burned is the estimate, bounded above by slippage.
87
- kind = 'withdraw';
88
- request = { mode: 'amount', amount: params.amount };
89
- tokensOut = params.amount;
90
- requireNonZeroSyncWithdrawBound(tokensOut, 'tokensOut');
91
- minTokensOut = params.amount;
92
- shares = await getSyncWithdrawUnitsIn(publicClient, provisioner, feeCalculator, feeVersion, vaultAddress, token.address, params.amount, rate.effectiveMultiplierBps, quoteReadContext);
93
- maxUnitsIn = applySlippageUp(shares, slippageBps);
94
- requireNonZeroSyncWithdrawBound(maxUnitsIn, 'maxUnitsIn');
95
- }
96
- else {
97
- // Exact shares in: tokens out is the estimate, bounded below by slippage.
98
- kind = 'redeem';
99
- if ('entireAmount' in params && params.entireAmount) {
100
- if (!params.account)
101
- throw new AccountRequiredError();
102
- request = { mode: 'entireAmount', account: params.account };
103
- shares = await publicClient.readContract({
104
- address: vaultAddress,
105
- abi: multiDepositorVaultAbi,
106
- functionName: 'balanceOf',
107
- args: [params.account],
108
- blockNumber: quoteReadContext.blockNumber,
109
- });
110
- }
111
- else if ('shares' in params && params.shares != null) {
112
- request = { mode: 'shares', shares: params.shares };
113
- shares = params.shares;
114
- }
115
- else {
116
- throw new InvalidWithdrawParamsError();
117
- }
118
- requireNonZeroSyncWithdrawBound(shares, 'unitsIn');
119
- tokensOut = await getSyncRedeemTokenOut(publicClient, provisioner, feeCalculator, feeVersion, vaultAddress, token.address, shares, rate.effectiveMultiplierBps, quoteReadContext);
120
- minTokensOut = applySlippageDown(tokensOut, slippageBps);
121
- requireNonZeroSyncWithdrawBound(minTokensOut, 'minTokensOut');
122
- maxUnitsIn = shares;
123
- }
124
- const [epoch, requestNumeraire, unitsLockedUntil] = await Promise.all([
125
- getSyncRedeemEpochState(publicClient, provisioner, quoteReadContext),
126
- convertTokenToNumeraire(publicClient, feeCalculator, feeVersion, vaultAddress, token.address, tokensOut, quoteReadContext),
127
- params.account
128
- ? getUserUnitsRefundableUntil(publicClient, provisioner, params.account, quoteReadContext)
129
- : Promise.resolve(undefined),
130
- ]);
131
- const remainingNumeraire = epoch.epochCapNumeraire > epoch.epochRedeemedNumeraire
132
- ? epoch.epochCapNumeraire - epoch.epochRedeemedNumeraire
133
- : 0n;
134
- const remainingTokens = await convertNumeraireToToken(publicClient, feeCalculator, feeVersion, vaultAddress, token.address, remainingNumeraire, quoteReadContext);
135
- const quoteDetails = {
136
- shares,
137
- maxUnitsIn,
138
- tokensOut,
139
- minTokensOut,
140
- rate,
141
- capacity: {
142
- epochCapNumeraire: epoch.epochCapNumeraire,
143
- epochRedeemedNumeraire: epoch.epochRedeemedNumeraire,
144
- remainingNumeraire,
145
- remainingTokens,
146
- requestNumeraire,
147
- exceedsCapacity: requestNumeraire > remainingNumeraire,
148
- },
149
- unitsLockedUntil,
150
- context: {
151
- vaultId: params.vaultId,
152
- chainId,
153
- tokenAddress: token.address,
154
- ...(params.account ? { account: params.account } : {}),
155
- slippageBps,
156
- blockNumber: quoteReadContext.blockNumber,
157
- request,
158
- },
159
- };
160
- if (kind === 'redeem')
161
- return { kind, ...quoteDetails };
162
- return { kind, ...quoteDetails };
163
- }
164
- //# sourceMappingURL=withdrawQuote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withdrawQuote.js","sourceRoot":"","sources":["../../src/evm/withdrawQuote.ts"],"names":[],"mappings":"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"}