@gearbox-protocol/sdk 13.0.0-next.3 → 13.0.0-next.31

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 (350) hide show
  1. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +263 -0
  2. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +278 -0
  3. package/dist/cjs/dev/AccountOpener.js +45 -5
  4. package/dist/cjs/dev/providers.js +12 -0
  5. package/dist/cjs/history/assembleOperations.js +103 -0
  6. package/dist/cjs/history/classifyMulticallOperations.js +157 -0
  7. package/dist/cjs/history/errors.js +91 -0
  8. package/dist/cjs/history/extractProtocolCalls.js +53 -0
  9. package/dist/cjs/history/extractTransfers.js +168 -0
  10. package/dist/cjs/history/findFacadeCalls.js +84 -0
  11. package/dist/cjs/history/index.js +39 -0
  12. package/dist/cjs/history/inner-operations.js +16 -0
  13. package/dist/cjs/history/internal-types.js +16 -0
  14. package/dist/cjs/history/mapOperations.js +79 -0
  15. package/dist/cjs/history/package.json +1 -0
  16. package/dist/cjs/history/parseCreditAccountTransaction.js +86 -0
  17. package/dist/cjs/history/populateContractsRegister.js +68 -0
  18. package/dist/cjs/history/toLegacyOperation.js +182 -0
  19. package/dist/cjs/{plugins/adapters/contracts/YearnV2AdapterContract.js → history/trace-utils.js} +36 -21
  20. package/dist/cjs/history/types.js +16 -0
  21. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +13 -106
  22. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  23. package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +5168 -0
  24. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +102 -3
  25. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  26. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +40 -30
  27. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +21 -11
  28. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +31 -21
  29. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +91 -25
  30. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +63 -25
  31. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +68 -31
  32. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +68 -31
  33. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +73 -31
  34. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +80 -33
  35. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +62 -26
  36. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +80 -34
  37. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +39 -14
  38. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +55 -27
  39. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +39 -14
  40. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +27 -14
  41. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +45 -23
  42. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +23 -14
  43. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +22 -12
  44. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +26 -16
  45. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +39 -17
  46. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +21 -11
  47. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +38 -14
  48. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +71 -42
  49. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +21 -11
  50. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +36 -17
  51. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +38 -21
  52. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +63 -53
  53. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +62 -37
  54. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +35 -25
  55. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +35 -21
  56. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +32 -23
  57. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +41 -27
  58. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +34 -17
  59. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +35 -25
  60. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +31 -11
  61. package/dist/cjs/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.js +585 -0
  62. package/dist/cjs/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.js +262 -0
  63. package/dist/cjs/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.js +296 -0
  64. package/dist/cjs/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.js +415 -0
  65. package/dist/cjs/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.js +74 -0
  66. package/dist/cjs/plugins/adapters/contracts/{MellowRedeemQueueAdapterContract.js → deprecated/MellowRedeemQueueAdapterContract.js} +33 -14
  67. package/dist/cjs/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.js +233 -0
  68. package/dist/cjs/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.js +359 -0
  69. package/dist/cjs/plugins/adapters/contracts/deprecated/index.js +36 -0
  70. package/dist/cjs/plugins/adapters/contracts/index.js +3 -17
  71. package/dist/cjs/plugins/adapters/contracts/types.js +0 -9
  72. package/dist/cjs/plugins/adapters/createAdapter.js +140 -0
  73. package/dist/cjs/plugins/adapters/index.js +6 -0
  74. package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +16 -0
  75. package/dist/cjs/plugins/adapters/transferHelpers.js +127 -0
  76. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +464 -105
  77. package/dist/cjs/sdk/accounts/CreditAccountsServiceV300.js +9 -4
  78. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  79. package/dist/cjs/sdk/base/BaseContract.js +54 -3
  80. package/dist/cjs/sdk/base/ChainContractsRegister.js +34 -1
  81. package/dist/cjs/sdk/base/Construct.js +11 -3
  82. package/dist/cjs/sdk/base/PlaceholderContract.js +2 -2
  83. package/dist/cjs/sdk/base/TokensMeta.js +161 -22
  84. package/dist/cjs/sdk/base/errors.js +35 -0
  85. package/dist/cjs/sdk/base/index.js +2 -0
  86. package/dist/cjs/sdk/chain/chains.js +2 -1
  87. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  88. package/dist/cjs/sdk/market/MarketSuite.js +3 -0
  89. package/dist/cjs/sdk/{pools/extraZappers.js → market/ZapperRegister.js} +110 -6
  90. package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +10 -4
  91. package/dist/cjs/sdk/market/adapters/{factory.js → createAdapter.js} +3 -3
  92. package/dist/cjs/sdk/market/adapters/index.js +2 -2
  93. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +108 -0
  94. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +3 -40
  95. package/dist/cjs/sdk/market/credit/index.js +2 -0
  96. package/dist/cjs/sdk/market/index.js +3 -1
  97. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  98. package/dist/cjs/sdk/market/pool/PoolV300Contract.js +3 -0
  99. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +17 -2
  100. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
  101. package/dist/cjs/sdk/market/pool/index.js +2 -0
  102. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +20 -0
  103. package/dist/cjs/sdk/market/types.js +16 -0
  104. package/dist/cjs/sdk/pools/PoolService.js +181 -91
  105. package/dist/cjs/sdk/sdk-legacy/core/creditAccount.js +2 -0
  106. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  107. package/dist/cjs/sdk/utils/abi-decode.js +43 -2
  108. package/dist/cjs/sdk/utils/viem/sendRawTx.js +16 -0
  109. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
  110. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
  111. package/dist/esm/dev/AccountOpener.js +47 -6
  112. package/dist/esm/dev/providers.js +12 -0
  113. package/dist/esm/history/assembleOperations.js +79 -0
  114. package/dist/esm/history/classifyMulticallOperations.js +137 -0
  115. package/dist/esm/history/errors.js +62 -0
  116. package/dist/esm/history/extractProtocolCalls.js +32 -0
  117. package/dist/esm/history/extractTransfers.js +148 -0
  118. package/dist/esm/history/findFacadeCalls.js +63 -0
  119. package/dist/esm/history/index.js +9 -0
  120. package/dist/esm/history/inner-operations.js +0 -0
  121. package/dist/esm/history/internal-types.js +0 -0
  122. package/dist/esm/history/mapOperations.js +55 -0
  123. package/dist/esm/history/package.json +1 -0
  124. package/dist/esm/history/parseCreditAccountTransaction.js +62 -0
  125. package/dist/esm/history/populateContractsRegister.js +52 -0
  126. package/dist/esm/history/toLegacyOperation.js +157 -0
  127. package/dist/esm/history/trace-utils.js +36 -0
  128. package/dist/esm/history/types.js +0 -0
  129. package/dist/esm/plugins/adapters/AdaptersPlugin.js +14 -148
  130. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  131. package/dist/esm/plugins/adapters/abi/targetContractAbi.js +5113 -0
  132. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +111 -4
  133. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  134. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +40 -30
  135. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +21 -11
  136. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +31 -21
  137. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +100 -26
  138. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +65 -25
  139. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +70 -31
  140. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +70 -31
  141. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +75 -31
  142. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +82 -33
  143. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +64 -26
  144. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +85 -34
  145. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +41 -14
  146. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +57 -27
  147. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +41 -14
  148. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +29 -14
  149. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +47 -23
  150. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +29 -15
  151. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +27 -12
  152. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +31 -16
  153. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +41 -17
  154. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +23 -11
  155. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +40 -14
  156. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +74 -43
  157. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +23 -11
  158. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +38 -17
  159. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +44 -22
  160. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +65 -53
  161. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +64 -37
  162. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +35 -25
  163. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +36 -22
  164. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +33 -24
  165. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +45 -28
  166. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +40 -18
  167. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +35 -25
  168. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +33 -11
  169. package/dist/esm/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.js +559 -0
  170. package/dist/esm/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.js +236 -0
  171. package/dist/esm/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.js +272 -0
  172. package/dist/esm/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.js +390 -0
  173. package/dist/esm/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.js +52 -0
  174. package/dist/esm/plugins/adapters/contracts/deprecated/MellowRedeemQueueAdapterContract.js +45 -0
  175. package/dist/esm/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.js +209 -0
  176. package/dist/esm/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.js +336 -0
  177. package/dist/esm/plugins/adapters/contracts/deprecated/index.js +8 -0
  178. package/dist/esm/plugins/adapters/contracts/index.js +1 -8
  179. package/dist/esm/plugins/adapters/contracts/types.js +0 -8
  180. package/dist/esm/plugins/adapters/createAdapter.js +158 -0
  181. package/dist/esm/plugins/adapters/index.js +3 -0
  182. package/dist/esm/plugins/adapters/legacyAdapterOperations.js +0 -0
  183. package/dist/esm/plugins/adapters/transferHelpers.js +95 -0
  184. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +464 -105
  185. package/dist/esm/sdk/accounts/CreditAccountsServiceV300.js +9 -4
  186. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +16 -5
  187. package/dist/esm/sdk/base/BaseContract.js +56 -3
  188. package/dist/esm/sdk/base/ChainContractsRegister.js +34 -1
  189. package/dist/esm/sdk/base/Construct.js +11 -3
  190. package/dist/esm/sdk/base/PlaceholderContract.js +2 -2
  191. package/dist/esm/sdk/base/TokensMeta.js +165 -21
  192. package/dist/esm/sdk/base/errors.js +11 -0
  193. package/dist/esm/sdk/base/index.js +1 -0
  194. package/dist/esm/sdk/chain/chains.js +2 -1
  195. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  196. package/dist/esm/sdk/market/MarketSuite.js +3 -0
  197. package/dist/esm/sdk/{pools/extraZappers.js → market/ZapperRegister.js} +109 -2
  198. package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +14 -5
  199. package/dist/esm/sdk/market/adapters/index.js +1 -1
  200. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +86 -0
  201. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +3 -43
  202. package/dist/esm/sdk/market/credit/index.js +1 -0
  203. package/dist/esm/sdk/market/index.js +1 -0
  204. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  205. package/dist/esm/sdk/market/pool/PoolV300Contract.js +3 -0
  206. package/dist/esm/sdk/market/pool/PoolV310Contract.js +17 -2
  207. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
  208. package/dist/esm/sdk/market/pool/index.js +1 -0
  209. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +21 -1
  210. package/dist/esm/sdk/market/types.js +0 -0
  211. package/dist/esm/sdk/pools/PoolService.js +182 -98
  212. package/dist/esm/sdk/sdk-legacy/core/creditAccount.js +2 -0
  213. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  214. package/dist/esm/sdk/utils/abi-decode.js +43 -2
  215. package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -1
  216. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +324 -0
  217. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +322 -0
  218. package/dist/types/dev/providers.d.ts +5 -5
  219. package/dist/types/history/assembleOperations.d.ts +22 -0
  220. package/dist/types/history/classifyMulticallOperations.d.ts +35 -0
  221. package/dist/types/history/errors.d.ts +30 -0
  222. package/dist/types/history/extractProtocolCalls.d.ts +8 -0
  223. package/dist/types/history/extractTransfers.d.ts +22 -0
  224. package/dist/types/history/findFacadeCalls.d.ts +9 -0
  225. package/dist/types/history/index.d.ts +6 -0
  226. package/dist/types/history/inner-operations.d.ts +57 -0
  227. package/dist/types/history/internal-types.d.ts +47 -0
  228. package/dist/types/history/mapOperations.d.ts +27 -0
  229. package/dist/types/history/parseCreditAccountTransaction.d.ts +27 -0
  230. package/dist/types/history/populateContractsRegister.d.ts +19 -0
  231. package/dist/types/history/toLegacyOperation.d.ts +18 -0
  232. package/dist/types/history/trace-utils.d.ts +12 -0
  233. package/dist/types/history/types.d.ts +71 -0
  234. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  235. package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +8262 -0
  236. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +50 -8
  237. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +238 -4
  238. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +113 -4
  239. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +37 -4
  240. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +210 -4
  241. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +407 -8
  242. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +208 -5
  243. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1244 -10
  244. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1244 -10
  245. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1244 -10
  246. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +575 -11
  247. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1244 -10
  248. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1213 -11
  249. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +60 -6
  250. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +483 -6
  251. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +58 -6
  252. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +123 -6
  253. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +133 -8
  254. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +155 -5
  255. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +240 -6
  256. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +356 -6
  257. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +94 -7
  258. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +38 -5
  259. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +479 -6
  260. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +483 -7
  261. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +48 -5
  262. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +42 -7
  263. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +186 -7
  264. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +1010 -5
  265. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +71 -8
  266. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +123 -4
  267. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +747 -5
  268. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +171 -4
  269. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +96 -5
  270. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +74 -7
  271. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +109 -4
  272. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +267 -5
  273. package/dist/types/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.d.ts +1664 -0
  274. package/dist/types/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.d.ts +611 -0
  275. package/dist/types/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.d.ts +686 -0
  276. package/dist/types/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.d.ts +1270 -0
  277. package/dist/types/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.d.ts +19 -0
  278. package/dist/types/plugins/adapters/contracts/deprecated/MellowRedeemQueueAdapterContract.d.ts +18 -0
  279. package/dist/types/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.d.ts +531 -0
  280. package/dist/types/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.d.ts +662 -0
  281. package/dist/types/plugins/adapters/contracts/deprecated/index.d.ts +8 -0
  282. package/dist/types/plugins/adapters/contracts/index.d.ts +1 -8
  283. package/dist/types/plugins/adapters/contracts/types.d.ts +0 -6
  284. package/dist/types/plugins/adapters/createAdapter.d.ts +7 -0
  285. package/dist/types/plugins/adapters/index.d.ts +3 -0
  286. package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +200 -0
  287. package/dist/types/plugins/adapters/transferHelpers.d.ts +60 -0
  288. package/dist/types/plugins/adapters/types.d.ts +59 -1
  289. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +123 -27
  290. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  291. package/dist/types/sdk/accounts/types.d.ts +108 -8
  292. package/dist/types/sdk/base/BaseContract.d.ts +15 -2
  293. package/dist/types/sdk/base/ChainContractsRegister.d.ts +11 -1
  294. package/dist/types/sdk/base/Construct.d.ts +6 -3
  295. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  296. package/dist/types/sdk/base/TokensMeta.d.ts +30 -5
  297. package/dist/types/sdk/base/errors.d.ts +3 -0
  298. package/dist/types/sdk/base/index.d.ts +1 -0
  299. package/dist/types/sdk/base/token-types.d.ts +10 -2
  300. package/dist/types/sdk/base/types.d.ts +31 -0
  301. package/dist/types/sdk/chain/chains.d.ts +1 -1
  302. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  303. package/dist/types/sdk/market/MarketSuite.d.ts +2 -0
  304. package/dist/types/sdk/market/ZapperRegister.d.ts +17 -0
  305. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +9 -4
  306. package/dist/types/sdk/market/adapters/index.d.ts +1 -1
  307. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +856 -0
  308. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +6 -848
  309. package/dist/types/sdk/market/credit/index.d.ts +1 -0
  310. package/dist/types/sdk/market/index.d.ts +1 -0
  311. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  312. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +2 -0
  313. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  314. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
  315. package/dist/types/sdk/market/pool/index.d.ts +1 -0
  316. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +21 -1
  317. package/dist/types/sdk/market/types.d.ts +10 -0
  318. package/dist/types/sdk/pools/PoolService.d.ts +4 -4
  319. package/dist/types/sdk/pools/types.d.ts +25 -16
  320. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +1 -0
  321. package/dist/types/sdk/sdk-legacy/payload/creditAccount.d.ts +1 -0
  322. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  323. package/dist/types/sdk/utils/abi-decode.d.ts +14 -1
  324. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +5 -1
  325. package/package.json +16 -11
  326. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -51
  327. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -58
  328. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -49
  329. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -56
  330. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -51
  331. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -46
  332. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -27
  333. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -34
  334. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -25
  335. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -32
  336. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -27
  337. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +0 -24
  338. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -22
  339. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +0 -22
  340. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +0 -482
  341. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +0 -225
  342. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +0 -198
  343. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +0 -396
  344. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +0 -13
  345. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +0 -12
  346. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +0 -203
  347. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +0 -185
  348. package/dist/types/sdk/pools/extraZappers.d.ts +0 -9
  349. /package/dist/esm/sdk/market/adapters/{factory.js → createAdapter.js} +0 -0
  350. /package/dist/types/sdk/market/adapters/{factory.d.ts → createAdapter.d.ts} +0 -0
@@ -1,4 +1,3 @@
1
- import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
2
1
  import { ierc20Abi } from "../../abi/iERC20.js";
3
2
  import { ierc20ZapperDepositsAbi } from "../../abi/iERC20ZapperDeposits.js";
4
3
  import { iethZapperDepositsAbi } from "../../abi/iETHZapperDeposits.js";
@@ -9,66 +8,19 @@ import {
9
8
  KYC_UNDERLYING_ON_DEMAND,
10
9
  SDKConstruct
11
10
  } from "../base/index.js";
12
- import {
13
- AddressMap,
14
- AddressSet,
15
- AP_PERIPHERY_COMPRESSOR,
16
- hexEq,
17
- VERSION_RANGE_310
18
- } from "../index.js";
19
- import { extraZappers } from "./extraZappers.js";
11
+ import { AddressSet, hexEq } from "../index.js";
12
+ import { AddressMap } from "../utils/index.js";
20
13
  const NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
14
+ const POOL_TOKENS_TO_MIGRATE = new AddressMap([
15
+ // v2 diesels
16
+ ["0x6CFaF95457d7688022FC53e7AbE052ef8DFBbdBA", "dDAI"],
17
+ ["0xc411dB5f5Eb3f7d552F9B8454B2D74097ccdE6E3", "dUSDC"],
18
+ ["0xe753260F1955e8678DCeA8887759e07aa57E8c54", "dWBTC"],
19
+ ["0xF21fc650C1B34eb0FDE786D52d23dA99Db3D6278", "dWETH"],
20
+ ["0x2158034dB06f06dcB9A786D2F1F8c38781bA779d", "dwstETH"],
21
+ ["0x8A1112AFef7F4FC7c066a77AABBc01b3Fff31D47", "dFRAX"]
22
+ ]);
21
23
  class PoolService extends SDKConstruct {
22
- #zappers;
23
- get zappers() {
24
- if (!this.#zappers) {
25
- throw new Error("zappers not loaded, call loadZappers first");
26
- }
27
- return this.#zappers;
28
- }
29
- async loadZappers(force) {
30
- if (!force && this.#zappers) {
31
- return;
32
- }
33
- const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
34
- AP_PERIPHERY_COMPRESSOR,
35
- VERSION_RANGE_310
36
- );
37
- this.logger?.debug(`loading zappers with periphery compressor ${pcAddr}`);
38
- const markets = this.sdk.marketRegister.markets;
39
- const resp = await this.client.multicall({
40
- contracts: markets.map(
41
- (m) => ({
42
- abi: peripheryCompressorAbi,
43
- address: pcAddr,
44
- functionName: "getZappers",
45
- args: [m.configurator.address, m.pool.pool.address]
46
- })
47
- ),
48
- allowFailure: true,
49
- batchSize: 0
50
- });
51
- this.#zappers = new AddressMap(void 0, "zappers");
52
- for (let i = 0; i < resp.length; i++) {
53
- const { status, result, error } = resp[i];
54
- const marketConfigurator = markets[i].configurator.address;
55
- const pool = markets[i].pool.pool.address;
56
- if (status === "success") {
57
- for (const z of result) {
58
- this.#addZapper({ ...z, pool });
59
- }
60
- } else {
61
- this.sdk.logger?.error(
62
- `failed to load zapper for market configurator ${this.labelAddress(
63
- marketConfigurator
64
- )} and pool ${this.labelAddress(pool)}: ${error}`
65
- );
66
- }
67
- }
68
- for (const z of extraZappers[this.networkType] ?? []) {
69
- this.#addZapper(z);
70
- }
71
- }
72
24
  getDepositTokensIn(pool) {
73
25
  const underlying = this.#describeUnderlying(pool);
74
26
  if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
@@ -98,17 +50,24 @@ class PoolService extends SDKConstruct {
98
50
  if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
99
51
  switch (underlying.contractType) {
100
52
  case KYC_UNDERLYING_DEFAULT: {
101
- return this.#depositMetadata(pool, tokenIn, tokenOut, false);
53
+ return this.#depositMetadata(
54
+ "kyc-default",
55
+ pool,
56
+ tokenIn,
57
+ tokenOut,
58
+ false
59
+ );
102
60
  }
103
61
  case KYC_UNDERLYING_ON_DEMAND:
104
62
  return {
105
63
  zapper: void 0,
106
64
  approveTarget: underlying.liquidityProvider,
107
- permissible: false
65
+ permissible: false,
66
+ type: "kyc-on-demand"
108
67
  };
109
68
  }
110
69
  }
111
- return this.#depositMetadata(pool, tokenIn, tokenOut, true);
70
+ return this.#depositMetadata("classic", pool, tokenIn, tokenOut, true);
112
71
  }
113
72
  addLiquidity(props) {
114
73
  const { collateral, meta, permit, referralCode, pool, wallet } = props;
@@ -119,7 +78,7 @@ class PoolService extends SDKConstruct {
119
78
  }
120
79
  }
121
80
  const { zapper } = meta;
122
- if (zapper?.tokenIn.addr === NATIVE_ADDRESS) {
81
+ if (zapper && hexEq(zapper.tokenIn.addr, NATIVE_ADDRESS)) {
123
82
  return {
124
83
  target: zapper.baseParams.addr,
125
84
  abi: iethZapperDepositsAbi,
@@ -156,8 +115,32 @@ class PoolService extends SDKConstruct {
156
115
  };
157
116
  }
158
117
  }
118
+ getWithdrawalTokensIn(pool) {
119
+ const underlying = this.#describeUnderlying(pool);
120
+ if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
121
+ switch (underlying.contractType) {
122
+ case KYC_UNDERLYING_DEFAULT:
123
+ return this.#withdrawalTokensIn(pool, false);
124
+ case KYC_UNDERLYING_ON_DEMAND:
125
+ return [];
126
+ }
127
+ }
128
+ return this.#withdrawalTokensIn(pool, true);
129
+ }
130
+ getWithdrawalTokensOut(pool, tokenIn) {
131
+ const underlying = this.#describeUnderlying(pool);
132
+ if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
133
+ switch (underlying.contractType) {
134
+ case KYC_UNDERLYING_DEFAULT:
135
+ return this.#withdrawalTokensOut(pool, tokenIn, false);
136
+ case KYC_UNDERLYING_ON_DEMAND:
137
+ return [underlying.asset];
138
+ }
139
+ }
140
+ return this.#withdrawalTokensOut(pool, tokenIn, true);
141
+ }
159
142
  removeLiquidity(props) {
160
- const { pool, amount, account, zapper, permit } = props;
143
+ const { pool, amount, meta, wallet, permit } = props;
161
144
  const underlying = this.#describeUnderlying(pool);
162
145
  if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
163
146
  if (underlying.contractType === KYC_UNDERLYING_ON_DEMAND) {
@@ -169,40 +152,74 @@ class PoolService extends SDKConstruct {
169
152
  };
170
153
  }
171
154
  }
172
- if (zapper) {
155
+ if (meta.zapper) {
173
156
  return permit ? {
174
- target: zapper.zapper,
157
+ target: meta.zapper.baseParams.addr,
175
158
  abi: iZapperAbi,
176
159
  functionName: "redeemWithPermit",
177
160
  args: [
178
161
  amount,
179
- account,
162
+ wallet,
180
163
  permit.deadline,
181
164
  permit.v,
182
165
  permit.r,
183
166
  permit.s
184
167
  ]
185
168
  } : {
186
- target: zapper.zapper,
169
+ target: meta.zapper.baseParams.addr,
187
170
  abi: iZapperAbi,
188
171
  functionName: "redeem",
189
- args: [amount, account]
172
+ args: [amount, wallet]
190
173
  };
191
174
  }
192
175
  return {
193
176
  target: pool,
194
177
  abi: iPoolV300Abi,
195
178
  functionName: "redeem",
196
- args: [amount, account, account]
179
+ args: [amount, wallet, wallet]
197
180
  };
198
181
  }
182
+ getWithdrawalMetadata(pool, tokenIn, tokenOut) {
183
+ const underlying = this.#describeUnderlying(pool);
184
+ if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
185
+ switch (underlying.contractType) {
186
+ case KYC_UNDERLYING_DEFAULT: {
187
+ return this.#withdrawalMetadata(
188
+ "kyc-default",
189
+ pool,
190
+ tokenIn,
191
+ tokenOut,
192
+ false
193
+ );
194
+ }
195
+ case KYC_UNDERLYING_ON_DEMAND:
196
+ return {
197
+ zapper: void 0,
198
+ approveTarget: void 0,
199
+ permissible: false,
200
+ type: "kyc-on-demand"
201
+ };
202
+ }
203
+ }
204
+ return this.#withdrawalMetadata("classic", pool, tokenIn, tokenOut, true);
205
+ }
206
+ /**
207
+ * Filter out v2 diesel tokens (can come from migration v2 -> v3 zappers)
208
+ * Also omits "migration" zappers (v3 -> v3.1) since they are treated in a different way
209
+ */
210
+ #getDepositZappers(poolAddr) {
211
+ const zappers = this.sdk.marketRegister.poolZappers(poolAddr);
212
+ return zappers.filter(
213
+ (z) => z.type !== "migration" && !POOL_TOKENS_TO_MIGRATE.has(z.tokenIn.addr)
214
+ );
215
+ }
199
216
  #depositTokensIn(poolAddr, allowDirectDeposit) {
200
217
  const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
201
218
  const result = new AddressSet();
202
219
  if (allowDirectDeposit) {
203
220
  result.add(pool.underlying);
204
221
  }
205
- const zappers = this.zappers.get(poolAddr) ?? [];
222
+ const zappers = this.#getDepositZappers(poolAddr);
206
223
  for (const z of zappers) {
207
224
  if (hexEq(z.tokenOut.addr, poolAddr)) {
208
225
  result.add(z.tokenIn.addr);
@@ -215,10 +232,27 @@ class PoolService extends SDKConstruct {
215
232
  }
216
233
  return result.asArray();
217
234
  }
235
+ #withdrawalTokensIn(poolAddr, allowDirectDeposit) {
236
+ const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
237
+ const result = new AddressSet();
238
+ if (allowDirectDeposit && pool) {
239
+ result.add(poolAddr);
240
+ }
241
+ const zappers = this.#getDepositZappers(poolAddr);
242
+ for (const z of zappers) {
243
+ result.add(z.tokenOut.addr);
244
+ }
245
+ if (result.size === 0) {
246
+ throw new Error(
247
+ `No tokensIn found for pool ${this.labelAddress(poolAddr)}`
248
+ );
249
+ }
250
+ return result.asArray();
251
+ }
218
252
  #depositTokensOut(poolAddr, tokenIn, allowDirectDeposit) {
219
253
  const result = new AddressSet();
220
254
  const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
221
- const zappers = this.zappers.get(poolAddr) ?? [];
255
+ const zappers = this.#getDepositZappers(poolAddr);
222
256
  for (const z of zappers) {
223
257
  if (hexEq(z.tokenIn.addr, tokenIn)) {
224
258
  result.add(z.tokenOut.addr);
@@ -229,20 +263,68 @@ class PoolService extends SDKConstruct {
229
263
  }
230
264
  if (result.size === 0) {
231
265
  throw new Error(
232
- `No tokensOut found for tokenIn ${this.labelAddress(tokenIn)} on pool ${this.labelAddress(poolAddr)}`
266
+ `No tokensOut found for tokenIn ${this.labelAddress(
267
+ tokenIn
268
+ )} on pool ${this.labelAddress(poolAddr)}`
233
269
  );
234
270
  }
235
- return result.asArray();
271
+ const r = result.asArray();
272
+ return r;
236
273
  }
237
- #depositMetadata(poolAddr, tokenIn, tokenOut, allowDirectDeposit) {
274
+ #withdrawalTokensOut(poolAddr, tokenIn, allowDirectDeposit) {
275
+ const result = new AddressSet();
276
+ const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
277
+ const zappers = this.#getDepositZappers(poolAddr);
278
+ for (const z of zappers) {
279
+ if (hexEq(z.tokenOut.addr, tokenIn)) {
280
+ result.add(z.tokenIn.addr);
281
+ }
282
+ }
283
+ if (allowDirectDeposit && hexEq(tokenIn, poolAddr)) {
284
+ result.add(pool.underlying);
285
+ }
286
+ if (result.size === 0) {
287
+ throw new Error(
288
+ `No tokensOut found for tokenIn ${this.labelAddress(
289
+ tokenIn
290
+ )} on pool ${this.labelAddress(poolAddr)}`
291
+ );
292
+ }
293
+ const r = result.asArray();
294
+ return r;
295
+ }
296
+ /**
297
+ * Filter out v2 diesel tokens (can come from migration v2 -> v3 zappers)
298
+ * Also omits "migration" zappers (v3 -> v3.1) since they are treated in a different way
299
+ */
300
+ #getDepositZapper(poolAddr, tokenIn, tokenOut) {
301
+ const zappers = this.sdk.marketRegister.getZapper(poolAddr, tokenIn, tokenOut)?.filter(
302
+ (z) => z.type !== "migration" && !POOL_TOKENS_TO_MIGRATE.has(z.tokenIn.addr)
303
+ );
304
+ if (zappers && zappers.length > 1) {
305
+ throw new Error(
306
+ `Multiple zappers found for tokenIn ${this.labelAddress(
307
+ tokenIn
308
+ )} and tokenOut ${this.labelAddress(
309
+ tokenOut
310
+ )} on pool ${this.labelAddress(poolAddr)}`
311
+ );
312
+ }
313
+ return zappers?.[0];
314
+ }
315
+ #depositMetadata(type, poolAddr, tokenIn, tokenOut, allowDirectDeposit) {
238
316
  if (!tokenOut) {
239
317
  throw new Error("tokenOut is required for classic pool deposit");
240
318
  }
241
319
  const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
242
- const zapper = this.#getZapper(poolAddr, tokenIn, tokenOut);
320
+ const zapper = this.#getDepositZapper(poolAddr, tokenIn, tokenOut);
243
321
  if (!zapper && !allowDirectDeposit) {
244
322
  throw new Error(
245
- `No zapper found for tokenIn ${this.labelAddress(tokenIn)} and tokenOut ${this.labelAddress(tokenOut)} on pool ${this.labelAddress(poolAddr)}`
323
+ `No zapper found for tokenIn ${this.labelAddress(
324
+ tokenIn
325
+ )} and tokenOut ${this.labelAddress(
326
+ tokenOut
327
+ )} on pool ${this.labelAddress(poolAddr)}`
246
328
  );
247
329
  }
248
330
  return {
@@ -251,31 +333,33 @@ class PoolService extends SDKConstruct {
251
333
  approveTarget: zapper?.baseParams.addr ?? pool.pool.address,
252
334
  // TODO: instead of permissible, return permitType зависимости от tokenIn
253
335
  // "none" | "eip2612" | "dai_like";
254
- permissible: !!zapper && tokenIn !== NATIVE_ADDRESS
336
+ permissible: !!zapper && !hexEq(tokenIn, NATIVE_ADDRESS),
337
+ type
255
338
  };
256
339
  }
257
- #getZapper(pool, tokenIn, tokenOut) {
258
- return this.zappers.get(pool)?.find(
259
- (z) => hexEq(z.tokenIn.addr, tokenIn) && hexEq(z.tokenOut.addr, tokenOut)
260
- );
261
- }
262
- #addZapper(z) {
263
- const existing = this.zappers.get(z.pool);
264
- if (existing) {
265
- const hasZapper = existing.some(
266
- (zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
267
- );
268
- if (!hasZapper) {
269
- existing.push(z);
270
- }
271
- } else {
272
- this.zappers.upsert(z.pool, [z]);
340
+ #withdrawalMetadata(type, poolAddr, tokenIn, tokenOut, allowDirectDeposit) {
341
+ if (!tokenOut) {
342
+ throw new Error("tokenOut is required for classic pool deposit");
273
343
  }
274
- const zappersTokens = [z.tokenIn, z.tokenOut];
275
- for (const t of zappersTokens) {
276
- this.sdk.tokensMeta.upsert(t.addr, t);
277
- this.sdk.setAddressLabel(t.addr, t.symbol);
344
+ const zapper = this.#getDepositZapper(poolAddr, tokenOut, tokenIn);
345
+ if (!zapper && !allowDirectDeposit) {
346
+ throw new Error(
347
+ `No zapper found for tokenIn ${this.labelAddress(
348
+ tokenOut
349
+ )} and tokenOut ${this.labelAddress(
350
+ tokenIn
351
+ )} on pool ${this.labelAddress(poolAddr)}`
352
+ );
278
353
  }
354
+ return {
355
+ zapper,
356
+ // zapper or pool itself
357
+ approveTarget: zapper?.baseParams.addr,
358
+ // TODO: instead of permissible, return permitType зависимости от tokenIn
359
+ // "none" | "eip2612" | "dai_like";
360
+ permissible: !!zapper,
361
+ type
362
+ };
279
363
  }
280
364
  #describeUnderlying(pool) {
281
365
  const market = this.sdk.marketRegister.findByPool(pool);
@@ -24,6 +24,7 @@ class CreditAccountData_Legacy {
24
24
  underlying;
25
25
  expirationDate;
26
26
  version;
27
+ investor;
27
28
  enabledTokensMask;
28
29
  healthFactor;
29
30
  baseBorrowRateWithoutFee;
@@ -53,6 +54,7 @@ class CreditAccountData_Legacy {
53
54
  this.underlying = payload.underlying.toLowerCase();
54
55
  this.expirationDate = Number(payload.expirationDate);
55
56
  this.version = Number(payload.cfVersion);
57
+ this.investor = payload.investor.toLowerCase();
56
58
  this.healthFactor = Number(
57
59
  (payload.healthFactor || 0n) * PERCENTAGE_FACTOR / WAD
58
60
  );
@@ -14,7 +14,7 @@ class AddressMap {
14
14
  this.#name = name;
15
15
  }
16
16
  /**
17
- * Adds or updates value, undefined removes value
17
+ * Adds or overwrites value, undefined removes value
18
18
  * @param address
19
19
  * @param value
20
20
  */
@@ -1,8 +1,19 @@
1
1
  import {
2
2
  AbiFunctionNotFoundError,
3
- getAbiItem
3
+ getAbiItem,
4
+ toFunctionSelector,
5
+ toFunctionSignature
4
6
  } from "viem";
5
7
  import { json_stringify } from "../../sdk/utils/index.js";
8
+ function getFunctionSignature(abi, calldataOrSelector) {
9
+ const selector = calldataOrSelector.slice(0, 10);
10
+ for (const item of abi) {
11
+ if (item.type === "function" && toFunctionSelector(item) === selector) {
12
+ return toFunctionSignature(item);
13
+ }
14
+ }
15
+ throw new Error(`Function with selector ${selector} not found in ABI`);
16
+ }
6
17
  function functionArgsToMap(abi, functionName, args) {
7
18
  const abiItem = getAbiItem({
8
19
  abi,
@@ -32,6 +43,36 @@ function functionArgsToMap(abi, functionName, args) {
32
43
  }
33
44
  return namedArgs;
34
45
  }
46
+ function functionArgsToRecord(abi, functionName, args) {
47
+ const abiItem = getAbiItem({
48
+ abi,
49
+ name: functionName,
50
+ args
51
+ });
52
+ if (!abiItem || abiItem.type !== "function") {
53
+ throw new AbiFunctionNotFoundError(functionName);
54
+ }
55
+ const namedArgs = {};
56
+ if (Array.isArray(args)) {
57
+ args.forEach((value, i) => {
58
+ const input = abiItem.inputs?.[i];
59
+ const key = input?.name || `${i}`;
60
+ namedArgs[key] = value;
61
+ });
62
+ } else {
63
+ Object.entries(args || {}).forEach(([key, value]) => {
64
+ const index = parseInt(key, 10);
65
+ if (!Number.isNaN(index) && abiItem.inputs?.[index]?.name) {
66
+ namedArgs[abiItem.inputs[index].name] = value;
67
+ } else {
68
+ namedArgs[key] = value;
69
+ }
70
+ });
71
+ }
72
+ return namedArgs;
73
+ }
35
74
  export {
36
- functionArgsToMap
75
+ functionArgsToMap,
76
+ functionArgsToRecord,
77
+ getFunctionSignature
37
78
  };
@@ -1,4 +1,7 @@
1
- import { sendTransaction } from "viem/actions";
1
+ import {
2
+ estimateGas,
3
+ sendTransaction
4
+ } from "viem/actions";
2
5
  import { getAction } from "viem/utils";
3
6
  async function sendRawTx(client, params) {
4
7
  const { tx, ...rest } = params;
@@ -13,6 +16,21 @@ async function sendRawTx(client, params) {
13
16
  value: BigInt(tx.value)
14
17
  });
15
18
  }
19
+ async function estimateRawTxGas(client, params) {
20
+ const { tx, ...rest } = params;
21
+ return getAction(
22
+ client,
23
+ estimateGas,
24
+ "estimateGas"
25
+ )({
26
+ ...rest,
27
+ account: params.account,
28
+ data: tx.callData,
29
+ to: tx.to,
30
+ value: BigInt(tx.value)
31
+ });
32
+ }
16
33
  export {
34
+ estimateRawTxGas,
17
35
  sendRawTx
18
36
  };