@gearbox-protocol/sdk 12.8.1 → 12.9.0-txparser.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 (278) hide show
  1. package/dist/cjs/dev/providers.js +0 -12
  2. package/dist/cjs/history/ContractRegister.js +69 -0
  3. package/dist/cjs/history/assembleOperations.js +110 -0
  4. package/dist/cjs/history/classifyMulticallOperations.js +157 -0
  5. package/dist/cjs/history/enrichTokens.js +80 -0
  6. package/dist/cjs/history/errors.js +91 -0
  7. package/dist/cjs/history/extractProtocolCalls.js +53 -0
  8. package/dist/cjs/history/extractTransfers.js +166 -0
  9. package/dist/cjs/history/findFacadeCalls.js +84 -0
  10. package/dist/cjs/history/index.js +38 -0
  11. package/dist/cjs/history/inner-operations.js +16 -0
  12. package/dist/cjs/history/internal-types.js +16 -0
  13. package/dist/cjs/history/package.json +1 -0
  14. package/dist/cjs/history/parseCreditAccountTransaction.js +83 -0
  15. package/dist/cjs/history/toLegacyOperation.js +120 -0
  16. package/dist/cjs/{plugins/adapters/contracts/YearnV2AdapterContract.js → history/trace-utils.js} +36 -21
  17. package/dist/cjs/history/types.js +16 -0
  18. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +13 -106
  19. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  20. package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +5168 -0
  21. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +102 -3
  22. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  23. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +40 -30
  24. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +21 -11
  25. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +31 -21
  26. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +91 -25
  27. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +63 -25
  28. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +68 -31
  29. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +68 -31
  30. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +73 -31
  31. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +80 -33
  32. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +62 -26
  33. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +80 -34
  34. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +39 -14
  35. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +55 -27
  36. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +39 -14
  37. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +27 -14
  38. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +45 -23
  39. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +23 -14
  40. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +22 -12
  41. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +26 -16
  42. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +39 -17
  43. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +21 -11
  44. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +38 -14
  45. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +71 -42
  46. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +21 -11
  47. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +36 -17
  48. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +38 -21
  49. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +63 -53
  50. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +62 -37
  51. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +35 -25
  52. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +35 -21
  53. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +32 -23
  54. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +41 -27
  55. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +34 -17
  56. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +35 -25
  57. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +31 -11
  58. package/dist/cjs/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.js +585 -0
  59. package/dist/cjs/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.js +262 -0
  60. package/dist/cjs/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.js +296 -0
  61. package/dist/cjs/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.js +415 -0
  62. package/dist/cjs/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.js +74 -0
  63. package/dist/cjs/plugins/adapters/contracts/{MellowRedeemQueueAdapterContract.js → deprecated/MellowRedeemQueueAdapterContract.js} +33 -14
  64. package/dist/cjs/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.js +233 -0
  65. package/dist/cjs/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.js +359 -0
  66. package/dist/cjs/plugins/adapters/contracts/deprecated/index.js +36 -0
  67. package/dist/cjs/plugins/adapters/contracts/index.js +3 -17
  68. package/dist/cjs/plugins/adapters/contracts/types.js +0 -9
  69. package/dist/cjs/plugins/adapters/createAdapter.js +140 -0
  70. package/dist/cjs/plugins/adapters/index.js +6 -0
  71. package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +16 -0
  72. package/dist/cjs/plugins/adapters/transferHelpers.js +127 -0
  73. package/dist/cjs/sdk/base/BaseContract.js +51 -0
  74. package/dist/cjs/sdk/base/ChainContractsRegister.js +33 -0
  75. package/dist/cjs/sdk/base/PlaceholderContract.js +2 -2
  76. package/dist/cjs/sdk/base/TokensMeta.js +1 -2
  77. package/dist/cjs/sdk/base/errors.js +35 -0
  78. package/dist/cjs/sdk/base/index.js +2 -0
  79. package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +10 -4
  80. package/dist/cjs/sdk/market/adapters/{factory.js → createAdapter.js} +3 -3
  81. package/dist/cjs/sdk/market/adapters/index.js +2 -2
  82. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +108 -0
  83. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +3 -40
  84. package/dist/cjs/sdk/market/credit/index.js +2 -0
  85. package/dist/cjs/sdk/utils/abi-decode.js +43 -2
  86. package/dist/esm/dev/providers.js +0 -12
  87. package/dist/esm/history/ContractRegister.js +50 -0
  88. package/dist/esm/history/assembleOperations.js +86 -0
  89. package/dist/esm/history/classifyMulticallOperations.js +137 -0
  90. package/dist/esm/history/enrichTokens.js +56 -0
  91. package/dist/esm/history/errors.js +62 -0
  92. package/dist/esm/history/extractProtocolCalls.js +32 -0
  93. package/dist/esm/history/extractTransfers.js +146 -0
  94. package/dist/esm/history/findFacadeCalls.js +63 -0
  95. package/dist/esm/history/index.js +9 -0
  96. package/dist/esm/history/inner-operations.js +0 -0
  97. package/dist/esm/history/internal-types.js +0 -0
  98. package/dist/esm/history/package.json +1 -0
  99. package/dist/esm/history/parseCreditAccountTransaction.js +59 -0
  100. package/dist/esm/history/toLegacyOperation.js +96 -0
  101. package/dist/esm/history/trace-utils.js +36 -0
  102. package/dist/esm/history/types.js +0 -0
  103. package/dist/esm/plugins/adapters/AdaptersPlugin.js +14 -148
  104. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  105. package/dist/esm/plugins/adapters/abi/targetContractAbi.js +5113 -0
  106. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +111 -4
  107. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  108. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +40 -30
  109. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +21 -11
  110. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +31 -21
  111. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +100 -26
  112. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +65 -25
  113. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +70 -31
  114. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +70 -31
  115. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +75 -31
  116. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +82 -33
  117. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +64 -26
  118. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +85 -34
  119. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +41 -14
  120. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +57 -27
  121. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +41 -14
  122. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +29 -14
  123. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +47 -23
  124. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +29 -15
  125. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +27 -12
  126. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +31 -16
  127. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +41 -17
  128. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +23 -11
  129. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +40 -14
  130. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +74 -43
  131. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +23 -11
  132. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +38 -17
  133. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +44 -22
  134. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +65 -53
  135. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +64 -37
  136. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +35 -25
  137. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +36 -22
  138. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +33 -24
  139. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +45 -28
  140. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +40 -18
  141. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +35 -25
  142. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +33 -11
  143. package/dist/esm/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.js +559 -0
  144. package/dist/esm/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.js +236 -0
  145. package/dist/esm/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.js +272 -0
  146. package/dist/esm/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.js +390 -0
  147. package/dist/esm/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.js +52 -0
  148. package/dist/esm/plugins/adapters/contracts/deprecated/MellowRedeemQueueAdapterContract.js +45 -0
  149. package/dist/esm/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.js +209 -0
  150. package/dist/esm/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.js +336 -0
  151. package/dist/esm/plugins/adapters/contracts/deprecated/index.js +8 -0
  152. package/dist/esm/plugins/adapters/contracts/index.js +1 -8
  153. package/dist/esm/plugins/adapters/contracts/types.js +0 -8
  154. package/dist/esm/plugins/adapters/createAdapter.js +158 -0
  155. package/dist/esm/plugins/adapters/index.js +3 -0
  156. package/dist/esm/plugins/adapters/legacyAdapterOperations.js +0 -0
  157. package/dist/esm/plugins/adapters/transferHelpers.js +95 -0
  158. package/dist/esm/sdk/base/BaseContract.js +53 -0
  159. package/dist/esm/sdk/base/ChainContractsRegister.js +33 -0
  160. package/dist/esm/sdk/base/PlaceholderContract.js +2 -2
  161. package/dist/esm/sdk/base/TokensMeta.js +6 -2
  162. package/dist/esm/sdk/base/errors.js +11 -0
  163. package/dist/esm/sdk/base/index.js +1 -0
  164. package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +14 -5
  165. package/dist/esm/sdk/market/adapters/index.js +1 -1
  166. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +86 -0
  167. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +3 -43
  168. package/dist/esm/sdk/market/credit/index.js +1 -0
  169. package/dist/esm/sdk/utils/abi-decode.js +43 -2
  170. package/dist/types/dev/providers.d.ts +5 -5
  171. package/dist/types/history/ContractRegister.d.ts +11 -0
  172. package/dist/types/history/assembleOperations.d.ts +24 -0
  173. package/dist/types/history/classifyMulticallOperations.d.ts +35 -0
  174. package/dist/types/history/enrichTokens.d.ts +5 -0
  175. package/dist/types/history/errors.d.ts +30 -0
  176. package/dist/types/history/extractProtocolCalls.d.ts +8 -0
  177. package/dist/types/history/extractTransfers.d.ts +22 -0
  178. package/dist/types/history/findFacadeCalls.d.ts +9 -0
  179. package/dist/types/history/index.d.ts +6 -0
  180. package/dist/types/history/inner-operations.d.ts +57 -0
  181. package/dist/types/history/internal-types.d.ts +47 -0
  182. package/dist/types/history/parseCreditAccountTransaction.d.ts +29 -0
  183. package/dist/types/history/toLegacyOperation.d.ts +35 -0
  184. package/dist/types/history/trace-utils.d.ts +12 -0
  185. package/dist/types/history/types.d.ts +65 -0
  186. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  187. package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +8262 -0
  188. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +50 -8
  189. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +238 -4
  190. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +113 -4
  191. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +37 -4
  192. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +210 -4
  193. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +407 -8
  194. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +208 -5
  195. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1244 -10
  196. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1244 -10
  197. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1244 -10
  198. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +575 -11
  199. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1244 -10
  200. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1213 -11
  201. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +60 -6
  202. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +483 -6
  203. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +58 -6
  204. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +123 -6
  205. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +133 -8
  206. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +155 -5
  207. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +240 -6
  208. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +356 -6
  209. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +94 -7
  210. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +38 -5
  211. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +479 -6
  212. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +483 -7
  213. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +48 -5
  214. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +42 -7
  215. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +186 -7
  216. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +1010 -5
  217. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +71 -8
  218. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +123 -4
  219. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +747 -5
  220. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +171 -4
  221. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +96 -5
  222. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +74 -7
  223. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +109 -4
  224. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +267 -5
  225. package/dist/types/plugins/adapters/contracts/deprecated/BalancerV2VaultAdapterContract.d.ts +1664 -0
  226. package/dist/types/plugins/adapters/contracts/deprecated/EqualizerRouterAdapterContract.d.ts +611 -0
  227. package/dist/types/plugins/adapters/contracts/deprecated/InfraredVaultAdapterContract.d.ts +686 -0
  228. package/dist/types/plugins/adapters/contracts/deprecated/KodiakIslandGatewayAdapterContract.d.ts +1270 -0
  229. package/dist/types/plugins/adapters/contracts/deprecated/MellowDepositQueueAdapterContract.d.ts +19 -0
  230. package/dist/types/plugins/adapters/contracts/deprecated/MellowRedeemQueueAdapterContract.d.ts +18 -0
  231. package/dist/types/plugins/adapters/contracts/deprecated/MellowVaultAdapterContract.d.ts +531 -0
  232. package/dist/types/plugins/adapters/contracts/deprecated/YearnV2AdapterContract.d.ts +662 -0
  233. package/dist/types/plugins/adapters/contracts/deprecated/index.d.ts +8 -0
  234. package/dist/types/plugins/adapters/contracts/index.d.ts +1 -8
  235. package/dist/types/plugins/adapters/contracts/types.d.ts +0 -6
  236. package/dist/types/plugins/adapters/createAdapter.d.ts +7 -0
  237. package/dist/types/plugins/adapters/index.d.ts +3 -0
  238. package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +200 -0
  239. package/dist/types/plugins/adapters/transferHelpers.d.ts +60 -0
  240. package/dist/types/plugins/adapters/types.d.ts +64 -1
  241. package/dist/types/sdk/base/BaseContract.d.ts +14 -1
  242. package/dist/types/sdk/base/ChainContractsRegister.d.ts +11 -1
  243. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  244. package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
  245. package/dist/types/sdk/base/errors.d.ts +3 -0
  246. package/dist/types/sdk/base/index.d.ts +1 -0
  247. package/dist/types/sdk/base/types.d.ts +24 -1
  248. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +9 -4
  249. package/dist/types/sdk/market/adapters/index.d.ts +1 -1
  250. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +856 -0
  251. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +6 -848
  252. package/dist/types/sdk/market/credit/index.d.ts +1 -0
  253. package/dist/types/sdk/utils/abi-decode.d.ts +14 -1
  254. package/package.json +7 -2
  255. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -51
  256. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -58
  257. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -49
  258. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -56
  259. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -51
  260. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -46
  261. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -27
  262. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -34
  263. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -25
  264. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -32
  265. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -27
  266. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +0 -24
  267. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -22
  268. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +0 -22
  269. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +0 -482
  270. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +0 -225
  271. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +0 -198
  272. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +0 -396
  273. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +0 -13
  274. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +0 -12
  275. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +0 -203
  276. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +0 -185
  277. /package/dist/esm/sdk/market/adapters/{factory.js → createAdapter.js} +0 -0
  278. /package/dist/types/sdk/market/adapters/{factory.d.ts → createAdapter.d.ts} +0 -0
@@ -0,0 +1,108 @@
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 CreditFacadeV310BaseContract_exports = {};
20
+ __export(CreditFacadeV310BaseContract_exports, {
21
+ CreditFacadeV310BaseContract: () => CreditFacadeV310BaseContract,
22
+ creditFacadeV310Abi: () => abi
23
+ });
24
+ module.exports = __toCommonJS(CreditFacadeV310BaseContract_exports);
25
+ var import_generated = require("../../../abi/310/generated.js");
26
+ var import_iPausable = require("../../../abi/iPausable.js");
27
+ var import_base = require("../../base/index.js");
28
+ const abi = [
29
+ ...import_generated.iCreditFacadeV310Abi,
30
+ ...import_generated.iCreditFacadeMulticallV310Abi,
31
+ ...import_iPausable.iPausableAbi
32
+ ];
33
+ class CreditFacadeV310BaseContract extends import_base.BaseContract {
34
+ constructor(options, args) {
35
+ super(options, { ...args, abi });
36
+ }
37
+ parseFunctionParamsV2(params, strict) {
38
+ switch (params.functionName) {
39
+ case "openCreditAccount": {
40
+ const [onBehalfOf, calls, referralCode] = params.args;
41
+ return {
42
+ onBehalfOf,
43
+ calls: this.register.parseMultiCallV2([...calls], strict),
44
+ referralCode
45
+ };
46
+ }
47
+ case "closeCreditAccount": {
48
+ const [creditAccount, calls] = params.args;
49
+ return {
50
+ creditAccount,
51
+ calls: this.register.parseMultiCallV2([...calls], strict)
52
+ };
53
+ }
54
+ case "botMulticall":
55
+ case "multicall": {
56
+ const [creditAccount, calls] = params.args;
57
+ return {
58
+ creditAccount,
59
+ calls: this.register.parseMultiCallV2([...calls], strict)
60
+ };
61
+ }
62
+ case "liquidateCreditAccount": {
63
+ const [creditAccount, to, calls] = params.args;
64
+ return {
65
+ creditAccount,
66
+ to,
67
+ calls: this.register.parseMultiCallV2([...calls], strict)
68
+ };
69
+ }
70
+ default:
71
+ return super.parseFunctionParamsV2(params, strict);
72
+ }
73
+ }
74
+ stringifyFunctionParams(params) {
75
+ switch (params.functionName) {
76
+ case "openCreditAccount": {
77
+ const [onBehalfOf, calls, referralCode] = params.args;
78
+ return [
79
+ this.labelAddress(onBehalfOf),
80
+ this.register.parseMultiCall([...calls]).join(","),
81
+ `${referralCode}`
82
+ ];
83
+ }
84
+ case "closeCreditAccount": {
85
+ const [creditAccount, calls] = params.args;
86
+ return [
87
+ this.labelAddress(creditAccount),
88
+ this.register.parseMultiCall([...calls]).join(",")
89
+ ];
90
+ }
91
+ case "liquidateCreditAccount": {
92
+ const [creditAccount, to, calls] = params.args;
93
+ return [
94
+ this.labelAddress(creditAccount),
95
+ this.labelAddress(to),
96
+ this.register.parseMultiCall([...calls]).join(",")
97
+ ];
98
+ }
99
+ default:
100
+ return super.stringifyFunctionParams(params);
101
+ }
102
+ }
103
+ }
104
+ // Annotate the CommonJS export names for ESM import in node:
105
+ 0 && (module.exports = {
106
+ CreditFacadeV310BaseContract,
107
+ creditFacadeV310Abi
108
+ });
@@ -21,24 +21,16 @@ __export(CreditFacadeV310Contract_exports, {
21
21
  CreditFacadeV310Contract: () => CreditFacadeV310Contract
22
22
  });
23
23
  module.exports = __toCommonJS(CreditFacadeV310Contract_exports);
24
- var import_generated = require("../../../abi/310/generated.js");
25
- var import_iPausable = require("../../../abi/iPausable.js");
26
- var import_base = require("../../base/index.js");
27
24
  var import_constants = require("../../constants/index.js");
28
25
  var import_utils = require("../../utils/index.js");
29
- const abi = [
30
- ...import_generated.iCreditFacadeV310Abi,
31
- ...import_generated.iCreditFacadeMulticallV310Abi,
32
- ...import_iPausable.iPausableAbi
33
- ];
34
- class CreditFacadeV310Contract extends import_base.BaseContract {
26
+ var import_CreditFacadeV310BaseContract = require("./CreditFacadeV310BaseContract.js");
27
+ class CreditFacadeV310Contract extends import_CreditFacadeV310BaseContract.CreditFacadeV310BaseContract {
35
28
  underlying;
36
29
  constructor(options, { creditFacade, creditManager }) {
37
30
  const { baseParams, ...rest } = creditFacade;
38
31
  super(options, {
39
32
  ...baseParams,
40
- name: `CreditFacadeV310(${creditManager.name})`,
41
- abi
33
+ name: `CreditFacadeV310(${creditManager.name})`
42
34
  });
43
35
  Object.assign(this, rest);
44
36
  this.underlying = creditManager.underlying;
@@ -105,35 +97,6 @@ class CreditFacadeV310Contract extends import_base.BaseContract {
105
97
  args: [to, calls, referralCode]
106
98
  });
107
99
  }
108
- stringifyFunctionParams(params) {
109
- switch (params.functionName) {
110
- case "openCreditAccount": {
111
- const [onBehalfOf, calls, referralCode] = params.args;
112
- return [
113
- this.labelAddress(onBehalfOf),
114
- this.register.parseMultiCall([...calls]).join(","),
115
- `${referralCode}`
116
- ];
117
- }
118
- case "closeCreditAccount": {
119
- const [creditAccount, calls] = params.args;
120
- return [
121
- this.labelAddress(creditAccount),
122
- this.register.parseMultiCall([...calls]).join(",")
123
- ];
124
- }
125
- case "liquidateCreditAccount": {
126
- const [creditAccount, to, calls] = params.args;
127
- return [
128
- this.labelAddress(creditAccount),
129
- this.labelAddress(to),
130
- this.register.parseMultiCall([...calls]).join(",")
131
- ];
132
- }
133
- default:
134
- return super.stringifyFunctionParams(params);
135
- }
136
- }
137
100
  }
138
101
  // Annotate the CommonJS export names for ESM import in node:
139
102
  0 && (module.exports = {
@@ -18,6 +18,7 @@ module.exports = __toCommonJS(credit_exports);
18
18
  __reExport(credit_exports, require("./CreditConfiguratorV300Contract.js"), module.exports);
19
19
  __reExport(credit_exports, require("./CreditConfiguratorV310Contract.js"), module.exports);
20
20
  __reExport(credit_exports, require("./CreditFacadeV300Contract.js"), module.exports);
21
+ __reExport(credit_exports, require("./CreditFacadeV310BaseContract.js"), module.exports);
21
22
  __reExport(credit_exports, require("./CreditFacadeV310Contract.js"), module.exports);
22
23
  __reExport(credit_exports, require("./CreditManagerV300Contract.js"), module.exports);
23
24
  __reExport(credit_exports, require("./CreditManagerV310Contract.js"), module.exports);
@@ -28,6 +29,7 @@ __reExport(credit_exports, require("./types.js"), module.exports);
28
29
  ...require("./CreditConfiguratorV300Contract.js"),
29
30
  ...require("./CreditConfiguratorV310Contract.js"),
30
31
  ...require("./CreditFacadeV300Contract.js"),
32
+ ...require("./CreditFacadeV310BaseContract.js"),
31
33
  ...require("./CreditFacadeV310Contract.js"),
32
34
  ...require("./CreditManagerV300Contract.js"),
33
35
  ...require("./CreditManagerV310Contract.js"),
@@ -18,11 +18,22 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var abi_decode_exports = {};
20
20
  __export(abi_decode_exports, {
21
- functionArgsToMap: () => functionArgsToMap
21
+ functionArgsToMap: () => functionArgsToMap,
22
+ functionArgsToRecord: () => functionArgsToRecord,
23
+ getFunctionSignature: () => getFunctionSignature
22
24
  });
23
25
  module.exports = __toCommonJS(abi_decode_exports);
24
26
  var import_viem = require("viem");
25
27
  var import_utils = require("../../sdk/utils/index.js");
28
+ function getFunctionSignature(abi, calldataOrSelector) {
29
+ const selector = calldataOrSelector.slice(0, 10);
30
+ for (const item of abi) {
31
+ if (item.type === "function" && (0, import_viem.toFunctionSelector)(item) === selector) {
32
+ return (0, import_viem.toFunctionSignature)(item);
33
+ }
34
+ }
35
+ throw new Error(`Function with selector ${selector} not found in ABI`);
36
+ }
26
37
  function functionArgsToMap(abi, functionName, args) {
27
38
  const abiItem = (0, import_viem.getAbiItem)({
28
39
  abi,
@@ -52,7 +63,37 @@ function functionArgsToMap(abi, functionName, args) {
52
63
  }
53
64
  return namedArgs;
54
65
  }
66
+ function functionArgsToRecord(abi, functionName, args) {
67
+ const abiItem = (0, import_viem.getAbiItem)({
68
+ abi,
69
+ name: functionName,
70
+ args
71
+ });
72
+ if (!abiItem || abiItem.type !== "function") {
73
+ throw new import_viem.AbiFunctionNotFoundError(functionName);
74
+ }
75
+ const namedArgs = {};
76
+ if (Array.isArray(args)) {
77
+ args.forEach((value, i) => {
78
+ const input = abiItem.inputs?.[i];
79
+ const key = input?.name || `${i}`;
80
+ namedArgs[key] = value;
81
+ });
82
+ } else {
83
+ Object.entries(args || {}).forEach(([key, value]) => {
84
+ const index = parseInt(key, 10);
85
+ if (!Number.isNaN(index) && abiItem.inputs?.[index]?.name) {
86
+ namedArgs[abiItem.inputs[index].name] = value;
87
+ } else {
88
+ namedArgs[key] = value;
89
+ }
90
+ });
91
+ }
92
+ return namedArgs;
93
+ }
55
94
  // Annotate the CommonJS export names for ESM import in node:
56
95
  0 && (module.exports = {
57
- functionArgsToMap
96
+ functionArgsToMap,
97
+ functionArgsToRecord,
98
+ getFunctionSignature
58
99
  });
@@ -22,9 +22,6 @@ function getRpcProviderUrl(provider, network, apiKey, protocol = "http") {
22
22
  }
23
23
  }
24
24
  function getAlchemyUrl(network, apiKey, protocol = "http") {
25
- if (!apiKey) {
26
- return void 0;
27
- }
28
25
  const alchemyDomain = ALCHEMY_DOMAINS[network];
29
26
  if (!alchemyDomain) {
30
27
  return void 0;
@@ -68,9 +65,6 @@ const ALCHEMY_DOMAINS = {
68
65
  Somnia: null
69
66
  };
70
67
  function getDrpcUrl(network, apiKey, protocol = "http") {
71
- if (!apiKey) {
72
- return void 0;
73
- }
74
68
  const net = DRPC_NETS[network];
75
69
  return net ? `${protocol}s://lb.drpc.live/${net}/${apiKey}` : void 0;
76
70
  }
@@ -93,9 +87,6 @@ const ANKR_DOMAINS = {
93
87
  Somnia: "somnia_mainnet"
94
88
  };
95
89
  function getAnkrUrl(network, apiKey, protocol = "http") {
96
- if (!apiKey) {
97
- return void 0;
98
- }
99
90
  const net = ANKR_DOMAINS[network];
100
91
  const sep = protocol === "ws" ? "/ws/" : "/";
101
92
  return net ? `${protocol}s://rpc.ankr.com/${net}${sep}${apiKey}` : void 0;
@@ -119,9 +110,6 @@ const THIRDWEB_DOMAINS = {
119
110
  Somnia: chains.Somnia.id.toString()
120
111
  };
121
112
  function getThirdWebUrl(network, apiKey, protocol = "http") {
122
- if (!apiKey) {
123
- return void 0;
124
- }
125
113
  if (protocol === "ws") {
126
114
  return void 0;
127
115
  }
@@ -0,0 +1,50 @@
1
+ import {
2
+ bytes32ToString,
3
+ ChainContractsRegister,
4
+ CreditFacadeV310BaseContract,
5
+ isV310
6
+ } from "../sdk/index.js";
7
+ class ContractRegister {
8
+ #client;
9
+ #logger;
10
+ #register;
11
+ #factories = [];
12
+ constructor(client, logger) {
13
+ this.#client = client;
14
+ this.#logger = logger;
15
+ this.#register = ChainContractsRegister.for(client, logger);
16
+ }
17
+ get register() {
18
+ return this.#register;
19
+ }
20
+ registerFactory(factory) {
21
+ this.#factories.push(factory);
22
+ }
23
+ createContract(args) {
24
+ const { addr, version } = args;
25
+ const existing = this.#register.getContract(addr);
26
+ if (existing) {
27
+ return existing;
28
+ }
29
+ const contractType = bytes32ToString(args.contractType);
30
+ if (contractType === "CREDIT_FACADE" && isV310(version)) {
31
+ return new CreditFacadeV310BaseContract(
32
+ { client: this.#client, logger: this.#logger },
33
+ { ...args, name: `CreditFacadeV310(${addr})` }
34
+ );
35
+ }
36
+ for (const factory of this.#factories) {
37
+ const contract = factory(
38
+ { client: this.#client, logger: this.#logger },
39
+ args
40
+ );
41
+ if (contract) {
42
+ return contract;
43
+ }
44
+ }
45
+ throw new Error(`unknown contract ${contractType} v${version}`);
46
+ }
47
+ }
48
+ export {
49
+ ContractRegister
50
+ };
@@ -0,0 +1,86 @@
1
+ import { AbstractAdapterContract } from "../plugins/adapters/index.js";
2
+ import { classifyMulticallOperations } from "./classifyMulticallOperations.js";
3
+ import { extractProtocolCalls } from "./extractProtocolCalls.js";
4
+ function assembleOperations(input) {
5
+ const {
6
+ facadeCalls,
7
+ executeResults,
8
+ register,
9
+ underlying,
10
+ txHash,
11
+ blockNumber,
12
+ liquidationRemainingFunds,
13
+ phantomTokens,
14
+ strict
15
+ } = input;
16
+ let offset = 0;
17
+ const meta = { txHash, blockNumber };
18
+ return facadeCalls.map((fc) => {
19
+ if (fc.operation === "PartiallyLiquidateCreditAccount") {
20
+ return assemblePartialLiquidation(fc, meta);
21
+ }
22
+ const count = countAdapterCalls(fc.innerCalls, register);
23
+ const sliced = executeResults.slice(offset, offset + count);
24
+ offset += count;
25
+ const protocolCalldatas = extractProtocolCalls(fc.trace, sliced);
26
+ const multicall = classifyMulticallOperations({
27
+ innerCalls: fc.innerCalls,
28
+ executeResults: sliced,
29
+ protocolCalldatas,
30
+ register,
31
+ creditAccount: fc.creditAccount,
32
+ underlying,
33
+ strict,
34
+ phantomTokens
35
+ });
36
+ switch (fc.operation) {
37
+ case "OpenCreditAccount":
38
+ return {
39
+ ...meta,
40
+ operation: fc.operation,
41
+ creditAccount: fc.creditAccount,
42
+ onBehalfOf: fc.parsed.rawArgs.onBehalfOf,
43
+ referralCode: fc.parsed.rawArgs.referralCode,
44
+ multicall
45
+ };
46
+ case "LiquidateCreditAccount":
47
+ return {
48
+ ...meta,
49
+ operation: fc.operation,
50
+ creditAccount: fc.creditAccount,
51
+ to: fc.parsed.rawArgs.to,
52
+ token: underlying,
53
+ remainingFunds: liquidationRemainingFunds ?? 0n,
54
+ multicall
55
+ };
56
+ default:
57
+ return {
58
+ ...meta,
59
+ operation: fc.operation,
60
+ creditAccount: fc.creditAccount,
61
+ multicall
62
+ };
63
+ }
64
+ });
65
+ }
66
+ function countAdapterCalls(innerCalls, register) {
67
+ return innerCalls.filter((call) => {
68
+ const contract = register.getContract(call.target);
69
+ return !contract || contract instanceof AbstractAdapterContract;
70
+ }).length;
71
+ }
72
+ function assemblePartialLiquidation(fc, meta) {
73
+ const { rawArgs } = fc.parsed;
74
+ return {
75
+ ...meta,
76
+ operation: "PartiallyLiquidateCreditAccount",
77
+ creditAccount: fc.creditAccount,
78
+ token: rawArgs.token,
79
+ repaidAmount: rawArgs.repaidAmount,
80
+ minSeizedAmount: rawArgs.minSeizedAmount,
81
+ to: rawArgs.to
82
+ };
83
+ }
84
+ export {
85
+ assembleOperations
86
+ };
@@ -0,0 +1,137 @@
1
+ import { isAddressEqual } from "viem";
2
+ import {
3
+ AbstractAdapterContract,
4
+ swapFromTransfers,
5
+ toNetTransfers
6
+ } from "../plugins/adapters/index.js";
7
+ import { TransferAlignmentError, UnknownAdapterError } from "./errors.js";
8
+ function classifyMulticallOperations(input) {
9
+ const {
10
+ innerCalls,
11
+ executeResults,
12
+ protocolCalldatas,
13
+ register,
14
+ creditAccount,
15
+ underlying,
16
+ strict,
17
+ phantomTokens
18
+ } = input;
19
+ let transferIdx = 0;
20
+ const result = [];
21
+ for (const call of innerCalls) {
22
+ const contract = register.getContract(call.target);
23
+ if (contract instanceof AbstractAdapterContract) {
24
+ const idx = transferIdx++;
25
+ const executeResult = executeResults[idx];
26
+ if (!executeResult) {
27
+ throw new TransferAlignmentError(executeResults.length, transferIdx);
28
+ }
29
+ const { transfers: transfers2, targetContract: targetContract2 } = executeResult;
30
+ const protocolCalldata = protocolCalldatas[idx];
31
+ const partial = contract.parseAdapterOperation(
32
+ call,
33
+ transfers2,
34
+ creditAccount,
35
+ protocolCalldata,
36
+ strict
37
+ );
38
+ if (partial) result.push({ ...partial, protocol: targetContract2 });
39
+ continue;
40
+ }
41
+ if (contract !== void 0) {
42
+ const op = classifyFacadeInnerCall(call, underlying, phantomTokens);
43
+ if (op) result.push(op);
44
+ continue;
45
+ }
46
+ if (strict) {
47
+ throw new UnknownAdapterError(call.target);
48
+ }
49
+ const unknownIdx = transferIdx++;
50
+ const unknownResult = executeResults[unknownIdx];
51
+ if (!unknownResult) {
52
+ throw new TransferAlignmentError(executeResults.length, transferIdx);
53
+ }
54
+ const { transfers, targetContract } = unknownResult;
55
+ const netTransfers = toNetTransfers(transfers, creditAccount);
56
+ result.push({
57
+ operation: "Execute",
58
+ adapter: call.target,
59
+ protocol: targetContract,
60
+ adapterType: call.contractType,
61
+ version: call.version,
62
+ label: call.label,
63
+ adapterFunctionName: call.functionName,
64
+ adapterArgs: call.rawArgs,
65
+ protocolFunctionName: call.functionName,
66
+ protocolArgs: call.rawArgs,
67
+ transfers,
68
+ legacy: {
69
+ operation: "Swap",
70
+ ...swapFromTransfers(netTransfers)
71
+ }
72
+ });
73
+ }
74
+ if (transferIdx !== executeResults.length) {
75
+ throw new TransferAlignmentError(executeResults.length, transferIdx);
76
+ }
77
+ return result;
78
+ }
79
+ function classifyFacadeInnerCall(call, underlying, phantomTokens) {
80
+ const { functionName: sig, rawArgs } = call;
81
+ const functionName = sig.split("(")[0];
82
+ switch (functionName) {
83
+ case "increaseDebt":
84
+ return {
85
+ operation: "IncreaseBorrowedAmount",
86
+ token: underlying,
87
+ amount: rawArgs.amount
88
+ };
89
+ case "decreaseDebt":
90
+ return {
91
+ operation: "DecreaseBorrowedAmount",
92
+ token: underlying,
93
+ amount: rawArgs.amount
94
+ };
95
+ case "addCollateral":
96
+ case "addCollateralWithPermit":
97
+ return {
98
+ operation: "AddCollateral",
99
+ token: rawArgs.token,
100
+ amount: rawArgs.amount
101
+ };
102
+ case "withdrawCollateral": {
103
+ const calldataToken = rawArgs.token;
104
+ const depositedToken = findPhantomDepositedToken(
105
+ calldataToken,
106
+ phantomTokens
107
+ );
108
+ return {
109
+ operation: "WithdrawCollateral",
110
+ token: depositedToken ?? calldataToken,
111
+ amount: rawArgs.amount,
112
+ to: rawArgs.to,
113
+ ...depositedToken ? { phantomToken: calldataToken } : {}
114
+ };
115
+ }
116
+ case "updateQuota":
117
+ return {
118
+ operation: "UpdateQuota",
119
+ token: rawArgs.token,
120
+ change: rawArgs.quotaChange
121
+ };
122
+ // other unclassified facade calls, for example onDemandPriceUpdates
123
+ // https://github.com/Gearbox-protocol/core-v3/blob/b038597d9070d9fd18593a6ae9c3d28ca931bb73/contracts/credit/CreditFacadeV3.sol#L534
124
+ default:
125
+ return null;
126
+ }
127
+ }
128
+ function findPhantomDepositedToken(calldataToken, phantomTokens) {
129
+ if (!phantomTokens) return void 0;
130
+ for (const [phantom, deposited] of phantomTokens.entries()) {
131
+ if (isAddressEqual(phantom, calldataToken)) return deposited;
132
+ }
133
+ return void 0;
134
+ }
135
+ export {
136
+ classifyMulticallOperations
137
+ };
@@ -0,0 +1,56 @@
1
+ function enrichOperations(ops, resolve) {
2
+ return ops.map((op) => enrichOperation(op, resolve));
3
+ }
4
+ function enrichOperation(op, resolve) {
5
+ switch (op.operation) {
6
+ case "DirectTokenTransfer":
7
+ return { ...op, token: resolve(op.token) };
8
+ case "PartiallyLiquidateCreditAccount":
9
+ return { ...op, token: resolve(op.token) };
10
+ case "LiquidateCreditAccount":
11
+ return {
12
+ ...op,
13
+ token: resolve(op.token),
14
+ multicall: enrichMulticall(op.multicall, resolve)
15
+ };
16
+ case "OpenCreditAccount":
17
+ case "CloseCreditAccount":
18
+ case "MultiCall":
19
+ case "BotMulticall":
20
+ return { ...op, multicall: enrichMulticall(op.multicall, resolve) };
21
+ }
22
+ }
23
+ function enrichMulticall(ops, resolve) {
24
+ return ops.map((op) => enrichInnerOp(op, resolve));
25
+ }
26
+ function enrichInnerOp(op, resolve) {
27
+ switch (op.operation) {
28
+ case "Execute":
29
+ return {
30
+ ...op,
31
+ transfers: op.transfers.map((t) => ({ ...t, token: resolve(t.token) }))
32
+ };
33
+ case "IncreaseBorrowedAmount":
34
+ case "DecreaseBorrowedAmount":
35
+ return { ...op, token: resolve(op.token) };
36
+ case "AddCollateral":
37
+ return { ...op, token: resolve(op.token) };
38
+ case "WithdrawCollateral": {
39
+ const enriched = {
40
+ operation: op.operation,
41
+ token: resolve(op.token),
42
+ amount: op.amount,
43
+ to: op.to
44
+ };
45
+ if (op.phantomToken) {
46
+ enriched.phantomToken = resolve(op.phantomToken);
47
+ }
48
+ return enriched;
49
+ }
50
+ case "UpdateQuota":
51
+ return { ...op, token: resolve(op.token) };
52
+ }
53
+ }
54
+ export {
55
+ enrichOperations
56
+ };
@@ -0,0 +1,62 @@
1
+ class UnknownAdapterError extends Error {
2
+ address;
3
+ constructor(address) {
4
+ super(`unknown adapter contract ${address}`);
5
+ this.name = "UnknownAdapterError";
6
+ this.address = address;
7
+ }
8
+ }
9
+ class TransferAlignmentError extends Error {
10
+ constructor(expected, actual) {
11
+ super(
12
+ `transfer alignment mismatch: expected ${expected} Execute transfers, consumed ${actual}`
13
+ );
14
+ this.name = "TransferAlignmentError";
15
+ }
16
+ }
17
+ class ProtocolCallNotFoundError extends Error {
18
+ targetContract;
19
+ executeIndex;
20
+ constructor(targetContract, executeIndex) {
21
+ super(
22
+ `protocol call to ${targetContract} not found in trace for Execute #${executeIndex}`
23
+ );
24
+ this.name = "ProtocolCallNotFoundError";
25
+ this.targetContract = targetContract;
26
+ this.executeIndex = executeIndex;
27
+ }
28
+ }
29
+ class AdapterTraceAlignmentError extends Error {
30
+ constructor(expected, actual) {
31
+ super(`found ${actual} adapter traces for ${expected} execute events`);
32
+ this.expected = expected;
33
+ this.actual = actual;
34
+ this.name = "AdapterTracesAlignmentError";
35
+ }
36
+ }
37
+ class UnexpectedFacadeEventOrderError extends Error {
38
+ constructor(e) {
39
+ super(
40
+ `unexpected facade event order: ${e.eventName} at ${e.logIndex} in ${e.transactionHash}`
41
+ );
42
+ this.name = "UnexpectedFacadeEventOrderError";
43
+ }
44
+ }
45
+ class UnknownFacadeCallError extends Error {
46
+ address;
47
+ functionName;
48
+ constructor(address, functionName) {
49
+ super(`unknown facade call "${functionName}" at ${address}`);
50
+ this.name = "UnknownFacadeCallError";
51
+ this.address = address;
52
+ this.functionName = functionName;
53
+ }
54
+ }
55
+ export {
56
+ AdapterTraceAlignmentError,
57
+ ProtocolCallNotFoundError,
58
+ TransferAlignmentError,
59
+ UnexpectedFacadeEventOrderError,
60
+ UnknownAdapterError,
61
+ UnknownFacadeCallError
62
+ };