@eth-optimism/actions-sdk 0.0.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/LICENSE +1 -1
  2. package/dist/__mocks__/MockAssets.d.ts.map +1 -0
  3. package/dist/__mocks__/MockAssets.js.map +1 -0
  4. package/dist/__mocks__/MockPrivyClient.d.ts.map +1 -0
  5. package/dist/__mocks__/MockPrivyClient.js.map +1 -0
  6. package/dist/__mocks__/utils.d.ts.map +1 -0
  7. package/dist/__mocks__/utils.js.map +1 -0
  8. package/dist/__tests__/actions.test.d.ts.map +1 -0
  9. package/dist/{actions.test.js → __tests__/actions.test.js} +35 -85
  10. package/dist/__tests__/actions.test.js.map +1 -0
  11. package/dist/actions.d.ts +19 -7
  12. package/dist/actions.d.ts.map +1 -1
  13. package/dist/actions.js +49 -19
  14. package/dist/actions.js.map +1 -1
  15. package/dist/constants/assets.d.ts +19 -0
  16. package/dist/constants/assets.d.ts.map +1 -1
  17. package/dist/constants/assets.js +84 -6
  18. package/dist/constants/assets.js.map +1 -1
  19. package/dist/constants/supportedChains.d.ts +1 -1
  20. package/dist/constants/supportedChains.d.ts.map +1 -1
  21. package/dist/constants/supportedChains.js +7 -3
  22. package/dist/constants/supportedChains.js.map +1 -1
  23. package/dist/core/asset/__mocks__/mockAsset.js +1 -1
  24. package/dist/core/asset/__mocks__/mockAsset.js.map +1 -1
  25. package/dist/index.d.ts +2 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/{test → lend/__mocks__}/MockLendProvider.d.ts +9 -7
  30. package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -0
  31. package/dist/{test → lend/__mocks__}/MockLendProvider.js +20 -21
  32. package/dist/lend/__mocks__/MockLendProvider.js.map +1 -0
  33. package/dist/{test → lend/__mocks__}/MockMarkets.d.ts +1 -1
  34. package/dist/lend/__mocks__/MockMarkets.d.ts.map +1 -0
  35. package/dist/{test → lend/__mocks__}/MockMarkets.js +1 -1
  36. package/dist/lend/__mocks__/MockMarkets.js.map +1 -0
  37. package/dist/lend/__mocks__/mockLendTransaction.d.ts +3 -12
  38. package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +1 -1
  39. package/dist/lend/__mocks__/mockLendTransaction.js +3 -19
  40. package/dist/lend/__mocks__/mockLendTransaction.js.map +1 -1
  41. package/dist/lend/core/LendProvider.d.ts +16 -3
  42. package/dist/lend/core/LendProvider.d.ts.map +1 -1
  43. package/dist/lend/core/LendProvider.js +23 -2
  44. package/dist/lend/core/LendProvider.js.map +1 -1
  45. package/dist/lend/core/__tests__/LendProvider.test.js +20 -50
  46. package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
  47. package/dist/lend/index.d.ts +1 -0
  48. package/dist/lend/index.d.ts.map +1 -1
  49. package/dist/lend/index.js +1 -0
  50. package/dist/lend/index.js.map +1 -1
  51. package/dist/lend/namespaces/ActionsLendNamespace.d.ts +2 -9
  52. package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -1
  53. package/dist/lend/namespaces/ActionsLendNamespace.js +2 -11
  54. package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -1
  55. package/dist/lend/namespaces/BaseLendNamespace.d.ts +47 -0
  56. package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -0
  57. package/dist/lend/namespaces/BaseLendNamespace.js +58 -0
  58. package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -0
  59. package/dist/lend/namespaces/WalletLendNamespace.d.ts +8 -9
  60. package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
  61. package/dist/lend/namespaces/WalletLendNamespace.js +24 -31
  62. package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
  63. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +25 -17
  64. package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -1
  65. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts +2 -0
  66. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +1 -0
  67. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +110 -0
  68. package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -0
  69. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +37 -21
  70. package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -1
  71. package/dist/lend/providers/aave/AaveLendProvider.d.ts +74 -0
  72. package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -0
  73. package/dist/lend/providers/aave/AaveLendProvider.js +290 -0
  74. package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -0
  75. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts +11 -0
  76. package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +1 -0
  77. package/dist/lend/providers/aave/__mocks__/mockReserve.js +80 -0
  78. package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +1 -0
  79. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts +2 -0
  80. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +1 -0
  81. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +315 -0
  82. package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -0
  83. package/dist/lend/providers/aave/abis/pool.d.ts +153 -0
  84. package/dist/lend/providers/aave/abis/pool.d.ts.map +1 -0
  85. package/dist/lend/providers/aave/abis/pool.js +79 -0
  86. package/dist/lend/providers/aave/abis/pool.js.map +1 -0
  87. package/dist/lend/providers/aave/addresses.d.ts +57 -0
  88. package/dist/lend/providers/aave/addresses.d.ts.map +1 -0
  89. package/dist/lend/providers/aave/addresses.js +83 -0
  90. package/dist/lend/providers/aave/addresses.js.map +1 -0
  91. package/dist/lend/providers/aave/sdk.d.ts +57 -0
  92. package/dist/lend/providers/aave/sdk.d.ts.map +1 -0
  93. package/dist/lend/providers/aave/sdk.js +201 -0
  94. package/dist/lend/providers/aave/sdk.js.map +1 -0
  95. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +4 -4
  96. package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
  97. package/dist/lend/providers/morpho/MorphoLendProvider.js +13 -28
  98. package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
  99. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +6 -57
  100. package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -1
  101. package/dist/lend/providers/morpho/__tests__/api.test.js +248 -54
  102. package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
  103. package/dist/lend/providers/morpho/__tests__/sdk.test.js +1 -0
  104. package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
  105. package/dist/lend/providers/morpho/contracts.d.ts +19 -0
  106. package/dist/lend/providers/morpho/contracts.d.ts.map +1 -0
  107. package/dist/lend/providers/morpho/contracts.js +32 -0
  108. package/dist/lend/providers/morpho/contracts.js.map +1 -0
  109. package/dist/lend/providers/morpho/sdk.d.ts +4 -3
  110. package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
  111. package/dist/lend/providers/morpho/sdk.js +168 -71
  112. package/dist/lend/providers/morpho/sdk.js.map +1 -1
  113. package/dist/services/ChainManager.d.ts +1 -1
  114. package/dist/{test → services/__mocks__}/MockChainManager.d.ts +1 -1
  115. package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -0
  116. package/dist/services/__mocks__/MockChainManager.js.map +1 -0
  117. package/dist/services/tokenBalance.d.ts.map +1 -1
  118. package/dist/services/tokenBalance.js +4 -5
  119. package/dist/services/tokenBalance.js.map +1 -1
  120. package/dist/services/tokenBalance.spec.js +2 -2
  121. package/dist/services/tokenBalance.spec.js.map +1 -1
  122. package/dist/supported/tokens.d.ts +4 -4
  123. package/dist/supported/tokens.d.ts.map +1 -1
  124. package/dist/supported/tokens.js +5 -56
  125. package/dist/supported/tokens.js.map +1 -1
  126. package/dist/types/actions.d.ts +26 -2
  127. package/dist/types/actions.d.ts.map +1 -1
  128. package/dist/types/asset.d.ts +3 -3
  129. package/dist/types/asset.d.ts.map +1 -1
  130. package/dist/types/lend/base.d.ts +10 -28
  131. package/dist/types/lend/base.d.ts.map +1 -1
  132. package/dist/types/lend/contracts.d.ts +17 -0
  133. package/dist/types/lend/contracts.d.ts.map +1 -0
  134. package/dist/types/lend/contracts.js +2 -0
  135. package/dist/types/lend/contracts.js.map +1 -0
  136. package/dist/types/lend/index.d.ts +1 -0
  137. package/dist/types/lend/index.d.ts.map +1 -1
  138. package/dist/types/lend/index.js +1 -0
  139. package/dist/types/lend/index.js.map +1 -1
  140. package/dist/utils/assets.d.ts +7 -1
  141. package/dist/utils/assets.d.ts.map +1 -1
  142. package/dist/utils/assets.js +12 -1
  143. package/dist/utils/assets.js.map +1 -1
  144. package/dist/utils/assets.test.js +1 -1
  145. package/dist/utils/assets.test.js.map +1 -1
  146. package/dist/utils/constants.d.ts +5 -0
  147. package/dist/utils/constants.d.ts.map +1 -0
  148. package/dist/utils/constants.js +5 -0
  149. package/dist/utils/constants.js.map +1 -0
  150. package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
  151. package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
  152. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +13 -13
  153. package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
  154. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +12 -12
  155. package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
  156. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +12 -3
  157. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
  158. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +3 -2
  159. package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
  160. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +2 -2
  161. package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
  162. package/dist/wallet/core/providers/hosted/types/index.d.ts +8 -2
  163. package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
  164. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +14 -6
  165. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
  166. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +10 -6
  167. package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
  168. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +39 -16
  169. package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
  170. package/dist/wallet/core/wallets/abstract/Wallet.d.ts +19 -7
  171. package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
  172. package/dist/wallet/core/wallets/abstract/Wallet.js +9 -7
  173. package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
  174. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +2 -2
  175. package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
  176. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +2 -2
  177. package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -1
  178. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +9 -3
  179. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
  180. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +4 -4
  181. package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
  182. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +4 -4
  183. package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
  184. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js +1 -1
  185. package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js.map +1 -1
  186. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js +1 -1
  187. package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js.map +1 -1
  188. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +10 -3
  189. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  190. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -3
  191. package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  192. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +7 -6
  193. package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  194. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
  195. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +5 -4
  196. package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
  197. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +2 -2
  198. package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
  199. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +9 -2
  200. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  201. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +6 -3
  202. package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  203. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +5 -4
  204. package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  205. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +10 -3
  206. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  207. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +5 -4
  208. package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  209. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +3 -3
  210. package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  211. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +2 -2
  212. package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
  213. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +8 -2
  214. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  215. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  216. package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  217. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
  218. package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  219. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
  220. package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
  221. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +6 -2
  222. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
  223. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -3
  224. package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
  225. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts.map +1 -1
  226. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js +1 -1
  227. package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js.map +1 -1
  228. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +22 -7
  229. package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
  230. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -2
  231. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
  232. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -3
  233. package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
  234. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts.map +1 -1
  235. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js +1 -1
  236. package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js.map +1 -1
  237. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +8 -4
  238. package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
  239. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -2
  240. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
  241. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -3
  242. package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
  243. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +7 -4
  244. package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
  245. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
  246. package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
  247. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
  248. package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
  249. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +6 -2
  250. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
  251. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
  252. package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
  253. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +6 -0
  254. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
  255. package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
  256. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +2 -2
  257. package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -1
  258. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js +1 -1
  259. package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js.map +1 -1
  260. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +6 -2
  261. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
  262. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
  263. package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
  264. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +2 -2
  265. package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
  266. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +1 -1
  267. package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
  268. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +6 -2
  269. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
  270. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
  271. package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
  272. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
  273. package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
  274. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
  275. package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
  276. package/package.json +4 -1
  277. package/src/{test → __mocks__}/MockPrivyClient.ts +1 -1
  278. package/src/{actions.test.ts → __tests__/actions.test.ts} +34 -95
  279. package/src/actions.ts +82 -26
  280. package/src/constants/assets.ts +92 -8
  281. package/src/constants/supportedChains.ts +10 -2
  282. package/src/core/asset/__mocks__/mockAsset.ts +1 -1
  283. package/src/index.ts +2 -3
  284. package/src/{test → lend/__mocks__}/MockLendProvider.ts +24 -27
  285. package/src/{test → lend/__mocks__}/MockMarkets.ts +1 -1
  286. package/src/lend/__mocks__/mockLendTransaction.ts +4 -26
  287. package/src/lend/core/LendProvider.ts +40 -7
  288. package/src/lend/core/__tests__/LendProvider.test.ts +21 -63
  289. package/src/lend/index.ts +1 -0
  290. package/src/lend/namespaces/ActionsLendNamespace.ts +2 -21
  291. package/src/lend/namespaces/BaseLendNamespace.ts +89 -0
  292. package/src/lend/namespaces/WalletLendNamespace.ts +39 -55
  293. package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +29 -22
  294. package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +137 -0
  295. package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +61 -26
  296. package/src/lend/providers/aave/AaveLendProvider.ts +395 -0
  297. package/src/lend/providers/aave/__mocks__/mockReserve.ts +84 -0
  298. package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +419 -0
  299. package/src/lend/providers/aave/abis/pool.ts +81 -0
  300. package/src/lend/providers/aave/addresses.ts +95 -0
  301. package/src/lend/providers/aave/sdk.ts +307 -0
  302. package/src/lend/providers/morpho/MorphoLendProvider.ts +23 -44
  303. package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +13 -85
  304. package/src/lend/providers/morpho/__tests__/api.test.ts +277 -51
  305. package/src/lend/providers/morpho/__tests__/sdk.test.ts +1 -0
  306. package/src/lend/providers/morpho/contracts.ts +37 -0
  307. package/src/lend/providers/morpho/sdk.ts +235 -87
  308. package/src/services/tokenBalance.spec.ts +2 -2
  309. package/src/services/tokenBalance.ts +6 -7
  310. package/src/supported/tokens.ts +6 -57
  311. package/src/types/actions.ts +30 -2
  312. package/src/types/asset.ts +3 -3
  313. package/src/types/lend/base.ts +14 -33
  314. package/src/types/lend/contracts.ts +18 -0
  315. package/src/types/lend/index.ts +1 -0
  316. package/src/utils/assets.test.ts +1 -1
  317. package/src/utils/assets.ts +15 -1
  318. package/src/utils/constants.ts +4 -0
  319. package/src/wallet/core/namespace/WalletNamespace.ts +2 -4
  320. package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +15 -15
  321. package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +14 -14
  322. package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +15 -4
  323. package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +3 -3
  324. package/src/wallet/core/providers/hosted/types/index.ts +8 -2
  325. package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +24 -9
  326. package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +45 -55
  327. package/src/wallet/core/wallets/abstract/Wallet.ts +25 -17
  328. package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +2 -2
  329. package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +2 -2
  330. package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +17 -10
  331. package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +7 -10
  332. package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.ts +1 -1
  333. package/src/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.ts +1 -1
  334. package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -5
  335. package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +8 -8
  336. package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +6 -4
  337. package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +3 -3
  338. package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +13 -4
  339. package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +5 -5
  340. package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +18 -6
  341. package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +4 -4
  342. package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +2 -2
  343. package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +16 -5
  344. package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
  345. package/src/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
  346. package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +8 -4
  347. package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +1 -1
  348. package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +31 -17
  349. package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +8 -4
  350. package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +1 -1
  351. package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +10 -11
  352. package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -4
  353. package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +7 -8
  354. package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +6 -6
  355. package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +5 -7
  356. package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -5
  357. package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +6 -0
  358. package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +2 -2
  359. package/src/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.ts +1 -1
  360. package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +12 -5
  361. package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +2 -2
  362. package/src/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +1 -1
  363. package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +12 -5
  364. package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
  365. package/src/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
  366. package/dist/actions.test.d.ts.map +0 -1
  367. package/dist/actions.test.js.map +0 -1
  368. package/dist/constants/config.d.ts +0 -10
  369. package/dist/constants/config.d.ts.map +0 -1
  370. package/dist/constants/config.js +0 -10
  371. package/dist/constants/config.js.map +0 -1
  372. package/dist/test/MockAssets.d.ts.map +0 -1
  373. package/dist/test/MockAssets.js.map +0 -1
  374. package/dist/test/MockChainManager.d.ts.map +0 -1
  375. package/dist/test/MockChainManager.js.map +0 -1
  376. package/dist/test/MockLendProvider.d.ts.map +0 -1
  377. package/dist/test/MockLendProvider.js.map +0 -1
  378. package/dist/test/MockMarkets.d.ts.map +0 -1
  379. package/dist/test/MockMarkets.js.map +0 -1
  380. package/dist/test/MockPrivyClient.d.ts.map +0 -1
  381. package/dist/test/MockPrivyClient.js.map +0 -1
  382. package/dist/test/utils.d.ts.map +0 -1
  383. package/dist/test/utils.js.map +0 -1
  384. package/src/constants/config.ts +0 -9
  385. /package/dist/{test → __mocks__}/MockAssets.d.ts +0 -0
  386. /package/dist/{test → __mocks__}/MockAssets.js +0 -0
  387. /package/dist/{test → __mocks__}/MockPrivyClient.d.ts +0 -0
  388. /package/dist/{test → __mocks__}/MockPrivyClient.js +0 -0
  389. /package/dist/{test → __mocks__}/utils.d.ts +0 -0
  390. /package/dist/{test → __mocks__}/utils.js +0 -0
  391. /package/dist/{actions.test.d.ts → __tests__/actions.test.d.ts} +0 -0
  392. /package/dist/{test → services/__mocks__}/MockChainManager.js +0 -0
  393. /package/src/{test → __mocks__}/MockAssets.ts +0 -0
  394. /package/src/{test → __mocks__}/utils.ts +0 -0
  395. /package/src/{test → services/__mocks__}/MockChainManager.ts +0 -0
@@ -0,0 +1,315 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { MockReceiverAddress } from '../../../__mocks__/MockMarkets.js';
3
+ import { createMockAaveReserve, createMockWETHReserve, } from '../__mocks__/mockReserve.js';
4
+ import { AaveLendProvider } from '../AaveLendProvider.js';
5
+ import * as aaveSdk from '../sdk.js';
6
+ import { MockChainManager } from '../../../../services/__mocks__/MockChainManager.js';
7
+ // Mock the Aave SDK modules
8
+ vi.mock('@/lend/providers/aave/sdk.js', () => ({
9
+ getReserve: vi.fn(),
10
+ getReserves: vi.fn(),
11
+ getATokenAddress: vi.fn(),
12
+ }));
13
+ // Mock assets for Aave tests (using Base chain ID 8453)
14
+ const MockAaveUSDCAsset = {
15
+ address: {
16
+ 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
17
+ },
18
+ metadata: {
19
+ decimals: 6,
20
+ name: 'USD Coin',
21
+ symbol: 'USDC',
22
+ },
23
+ type: 'erc20',
24
+ };
25
+ const MockAaveETHAsset = {
26
+ address: {
27
+ 8453: 'native',
28
+ },
29
+ metadata: {
30
+ decimals: 18,
31
+ name: 'Ethereum',
32
+ symbol: 'ETH',
33
+ },
34
+ type: 'native',
35
+ };
36
+ // Mock market configurations for Aave
37
+ const MockAaveUSDCMarket = {
38
+ address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
39
+ chainId: 8453, // Base
40
+ name: 'Aave USDC Base',
41
+ asset: MockAaveUSDCAsset,
42
+ lendProvider: 'aave',
43
+ };
44
+ const MockAaveETHMarket = {
45
+ address: '0x4200000000000000000000000000000000000006', // WETH predeploy (market uses WETH internally)
46
+ chainId: 8453,
47
+ name: 'Aave ETH Base',
48
+ asset: MockAaveETHAsset,
49
+ lendProvider: 'aave',
50
+ };
51
+ describe('AaveLendProvider', () => {
52
+ let provider;
53
+ let mockConfig;
54
+ let mockChainManager;
55
+ beforeEach(() => {
56
+ mockConfig = {
57
+ marketAllowlist: [MockAaveUSDCMarket, MockAaveETHMarket],
58
+ };
59
+ mockChainManager = new MockChainManager({
60
+ supportedChains: [8453],
61
+ });
62
+ provider = new AaveLendProvider(mockConfig, mockChainManager);
63
+ });
64
+ afterEach(() => {
65
+ vi.clearAllMocks();
66
+ });
67
+ describe('constructor', () => {
68
+ it('should initialize with provided config', () => {
69
+ expect(provider).toBeInstanceOf(AaveLendProvider);
70
+ });
71
+ });
72
+ describe('supportedChainIds', () => {
73
+ it('should return array of supported chain IDs', () => {
74
+ const chainIds = provider.supportedChainIds();
75
+ expect(chainIds).toHaveLength(4);
76
+ expect(chainIds).toContain(10); // Optimism
77
+ expect(chainIds).toContain(8453); // Base
78
+ expect(chainIds).toContain(11155420); // Optimism Sepolia
79
+ expect(chainIds).toContain(84532); // Base Sepolia
80
+ });
81
+ it('should return unique chain IDs', () => {
82
+ const chainIds = provider.supportedChainIds();
83
+ const uniqueIds = [...new Set(chainIds)];
84
+ expect(chainIds.length).toBe(uniqueIds.length);
85
+ });
86
+ });
87
+ describe('openPosition', () => {
88
+ beforeEach(() => {
89
+ const mockReserve = createMockAaveReserve();
90
+ vi.mocked(aaveSdk.getReserve).mockResolvedValue(mockReserve);
91
+ });
92
+ it('should successfully create a lending transaction for ERC20', async () => {
93
+ const amount = 1000;
94
+ const asset = MockAaveUSDCAsset;
95
+ const marketId = {
96
+ address: MockAaveUSDCMarket.address,
97
+ chainId: MockAaveUSDCMarket.chainId,
98
+ };
99
+ const lendTransaction = await provider.openPosition({
100
+ amount,
101
+ asset,
102
+ marketId,
103
+ walletAddress: MockReceiverAddress,
104
+ });
105
+ expect(lendTransaction).toHaveProperty('amount', BigInt('1000000000'));
106
+ expect(lendTransaction).toHaveProperty('asset', asset.address[marketId.chainId]);
107
+ expect(lendTransaction).toHaveProperty('marketId', marketId.address);
108
+ expect(lendTransaction).toHaveProperty('apy');
109
+ expect(lendTransaction).toHaveProperty('transactionData');
110
+ expect(lendTransaction.transactionData).toHaveProperty('approval');
111
+ expect(lendTransaction.transactionData).toHaveProperty('position');
112
+ expect(typeof lendTransaction.apy).toBe('number');
113
+ expect(lendTransaction.apy).toBeGreaterThan(0);
114
+ });
115
+ it('should create native ETH deposit without approval', async () => {
116
+ const mockETHReserve = createMockWETHReserve();
117
+ vi.mocked(aaveSdk.getReserve).mockResolvedValue(mockETHReserve);
118
+ const amount = 1;
119
+ const asset = MockAaveETHAsset;
120
+ const marketId = {
121
+ address: MockAaveETHMarket.address,
122
+ chainId: MockAaveETHMarket.chainId,
123
+ };
124
+ const lendTransaction = await provider.openPosition({
125
+ amount,
126
+ asset,
127
+ marketId,
128
+ walletAddress: MockReceiverAddress,
129
+ });
130
+ expect(lendTransaction).toHaveProperty('amount', BigInt('1000000000000000000'));
131
+ expect(lendTransaction.transactionData).not.toHaveProperty('approval');
132
+ expect(lendTransaction.transactionData).toHaveProperty('position');
133
+ // Native ETH deposits send ETH as msg.value via WETHGateway
134
+ expect(lendTransaction.transactionData.position.value).toBe(BigInt('1000000000000000000'));
135
+ });
136
+ it('should handle lending errors', async () => {
137
+ vi.mocked(aaveSdk.getReserve).mockRejectedValueOnce(new Error('Market fetch failed'));
138
+ const asset = MockAaveUSDCAsset;
139
+ const amount = 1000;
140
+ const marketId = {
141
+ address: MockAaveUSDCMarket.address,
142
+ chainId: MockAaveUSDCMarket.chainId,
143
+ };
144
+ await expect(provider.openPosition({
145
+ amount,
146
+ asset,
147
+ marketId,
148
+ walletAddress: MockReceiverAddress,
149
+ })).rejects.toThrow('Failed to open position');
150
+ });
151
+ });
152
+ describe('closePosition', () => {
153
+ beforeEach(() => {
154
+ const mockReserve = createMockAaveReserve();
155
+ vi.mocked(aaveSdk.getReserve).mockResolvedValue(mockReserve);
156
+ });
157
+ it('should successfully create a withdrawal transaction for ERC20', async () => {
158
+ const amount = 500;
159
+ const asset = MockAaveUSDCAsset;
160
+ const marketId = {
161
+ address: MockAaveUSDCMarket.address,
162
+ chainId: MockAaveUSDCMarket.chainId,
163
+ };
164
+ const walletAddress = MockReceiverAddress;
165
+ const withdrawTransaction = await provider.closePosition({
166
+ amount,
167
+ asset,
168
+ marketId,
169
+ walletAddress,
170
+ });
171
+ expect(withdrawTransaction).toHaveProperty('amount', BigInt('500000000'));
172
+ expect(withdrawTransaction).toHaveProperty('asset', asset.address[marketId.chainId]);
173
+ expect(withdrawTransaction).toHaveProperty('marketId', marketId.address);
174
+ expect(withdrawTransaction).toHaveProperty('apy');
175
+ expect(withdrawTransaction).toHaveProperty('transactionData');
176
+ expect(withdrawTransaction.transactionData).toHaveProperty('position');
177
+ expect(withdrawTransaction.transactionData).not.toHaveProperty('approval');
178
+ expect(typeof withdrawTransaction.apy).toBe('number');
179
+ expect(withdrawTransaction.apy).toBeGreaterThan(0);
180
+ });
181
+ it('should create native ETH withdrawal with approval', async () => {
182
+ const mockETHReserve = createMockWETHReserve();
183
+ vi.mocked(aaveSdk.getReserve).mockResolvedValue(mockETHReserve);
184
+ vi.mocked(aaveSdk.getATokenAddress).mockResolvedValue('0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7');
185
+ const amount = 1;
186
+ const asset = MockAaveETHAsset;
187
+ const marketId = {
188
+ address: MockAaveETHMarket.address,
189
+ chainId: MockAaveETHMarket.chainId,
190
+ };
191
+ const withdrawTransaction = await provider.closePosition({
192
+ amount,
193
+ asset,
194
+ marketId,
195
+ walletAddress: MockReceiverAddress,
196
+ });
197
+ expect(withdrawTransaction).toHaveProperty('amount', BigInt('1000000000000000000'));
198
+ // Native ETH withdrawals require approving aWETH to WETHGateway
199
+ expect(withdrawTransaction.transactionData).toHaveProperty('approval');
200
+ expect(withdrawTransaction.transactionData).toHaveProperty('position');
201
+ });
202
+ it('should handle withdrawal errors', async () => {
203
+ vi.mocked(aaveSdk.getReserve).mockRejectedValueOnce(new Error('Market fetch failed'));
204
+ const amount = 500;
205
+ const asset = MockAaveUSDCAsset;
206
+ const marketId = {
207
+ address: MockAaveUSDCMarket.address,
208
+ chainId: MockAaveUSDCMarket.chainId,
209
+ };
210
+ const walletAddress = MockReceiverAddress;
211
+ await expect(provider.closePosition({
212
+ amount,
213
+ asset,
214
+ marketId,
215
+ walletAddress,
216
+ })).rejects.toThrow('Market fetch failed');
217
+ });
218
+ });
219
+ describe('market allowlist configuration', () => {
220
+ it('should work without market allowlist', () => {
221
+ const configWithoutAllowlist = {};
222
+ const providerWithoutAllowlist = new AaveLendProvider(configWithoutAllowlist, mockChainManager);
223
+ expect(providerWithoutAllowlist.config.marketAllowlist).toBeUndefined();
224
+ });
225
+ it('should store market allowlist when provided', () => {
226
+ const configWithAllowlist = {
227
+ marketAllowlist: [MockAaveUSDCMarket],
228
+ };
229
+ const providerWithAllowlist = new AaveLendProvider(configWithAllowlist, mockChainManager);
230
+ const allowlist = providerWithAllowlist.config.marketAllowlist;
231
+ expect(allowlist).toBeDefined();
232
+ expect(allowlist).toHaveLength(1);
233
+ expect(allowlist[0].address).toBe(MockAaveUSDCMarket.address);
234
+ expect(allowlist[0].name).toBe(MockAaveUSDCMarket.name);
235
+ });
236
+ it('should handle multiple markets in allowlist', () => {
237
+ const configWithMultipleMarkets = {
238
+ marketAllowlist: [MockAaveUSDCMarket, MockAaveETHMarket],
239
+ };
240
+ const providerInstance = new AaveLendProvider(configWithMultipleMarkets, mockChainManager);
241
+ const allowlist = providerInstance.config.marketAllowlist;
242
+ expect(allowlist).toBeDefined();
243
+ expect(allowlist).toHaveLength(2);
244
+ expect(allowlist[0].name).toBe(MockAaveUSDCMarket.name);
245
+ expect(allowlist[1].name).toBe(MockAaveETHMarket.name);
246
+ });
247
+ });
248
+ describe('ETH/WETH market configuration', () => {
249
+ it('should detect native asset type for ETH market', () => {
250
+ // Market is configured with ETH (type: native) but uses WETH address internally
251
+ expect(MockAaveETHMarket.asset.type).toBe('native');
252
+ expect(MockAaveETHMarket.asset.address[8453]).toBe('native');
253
+ // Market address points to WETH for Aave's internal operations
254
+ expect(MockAaveETHMarket.address).toBe('0x4200000000000000000000000000000000000006');
255
+ });
256
+ it('should use WETHGateway for ETH deposits when asset type is native', async () => {
257
+ const mockETHReserve = createMockWETHReserve();
258
+ vi.mocked(aaveSdk.getReserve).mockResolvedValue(mockETHReserve);
259
+ const lendTransaction = await provider.openPosition({
260
+ amount: 1,
261
+ asset: MockAaveETHAsset,
262
+ marketId: {
263
+ address: MockAaveETHMarket.address,
264
+ chainId: MockAaveETHMarket.chainId,
265
+ },
266
+ walletAddress: MockReceiverAddress,
267
+ });
268
+ // Native ETH deposits should have msg.value set (WETHGateway flow)
269
+ expect(lendTransaction.transactionData.position.value).toBe(BigInt('1000000000000000000'));
270
+ // Should not require approval for native ETH
271
+ expect(lendTransaction.transactionData.approval).toBeUndefined();
272
+ });
273
+ it('should allow developer to configure ETH market without knowing about WETH internals', () => {
274
+ // Developer configures market with ETH asset
275
+ // SDK handles WETH internally via WETHGateway
276
+ const marketConfig = {
277
+ address: '0x4200000000000000000000000000000000000006', // WETH address
278
+ chainId: 8453,
279
+ name: 'Aave ETH',
280
+ asset: MockAaveETHAsset, // Uses ETH (native) asset
281
+ lendProvider: 'aave',
282
+ };
283
+ // Verify the market uses native asset
284
+ expect(marketConfig.asset.type).toBe('native');
285
+ // Developer doesn't need to create a separate WETH asset
286
+ });
287
+ });
288
+ describe('unsupported chain handling', () => {
289
+ it('should throw error for unsupported chain', async () => {
290
+ // Use type assertion to test runtime behavior with unsupported chain
291
+ const unsupportedChainId = 999999;
292
+ const unsupportedMarket = {
293
+ address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
294
+ chainId: unsupportedChainId,
295
+ name: 'Unsupported Market',
296
+ asset: MockAaveUSDCAsset,
297
+ lendProvider: 'aave',
298
+ };
299
+ const configWithUnsupported = {
300
+ marketAllowlist: [unsupportedMarket],
301
+ };
302
+ const providerWithUnsupported = new AaveLendProvider(configWithUnsupported, mockChainManager);
303
+ await expect(providerWithUnsupported.openPosition({
304
+ amount: 100,
305
+ asset: MockAaveUSDCAsset,
306
+ marketId: {
307
+ address: unsupportedMarket.address,
308
+ chainId: unsupportedMarket.chainId,
309
+ },
310
+ walletAddress: MockReceiverAddress,
311
+ })).rejects.toThrow('not supported');
312
+ });
313
+ });
314
+ });
315
+ //# sourceMappingURL=AaveLendProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AaveLendProvider.test.js","sourceRoot":"","sources":["../../../../../src/lend/providers/aave/__tests__/AaveLendProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Aave Pool ABI - supply and withdraw functions
3
+ */
4
+ export declare const POOL_ABI: readonly [{
5
+ readonly name: "supply";
6
+ readonly type: "function";
7
+ readonly stateMutability: "nonpayable";
8
+ readonly inputs: readonly [{
9
+ readonly type: "address";
10
+ readonly name: "asset";
11
+ }, {
12
+ readonly type: "uint256";
13
+ readonly name: "amount";
14
+ }, {
15
+ readonly type: "address";
16
+ readonly name: "onBehalfOf";
17
+ }, {
18
+ readonly type: "uint16";
19
+ readonly name: "referralCode";
20
+ }];
21
+ readonly outputs: readonly [];
22
+ }, {
23
+ readonly name: "withdraw";
24
+ readonly type: "function";
25
+ readonly stateMutability: "nonpayable";
26
+ readonly inputs: readonly [{
27
+ readonly type: "address";
28
+ readonly name: "asset";
29
+ }, {
30
+ readonly type: "uint256";
31
+ readonly name: "amount";
32
+ }, {
33
+ readonly type: "address";
34
+ readonly name: "to";
35
+ }];
36
+ readonly outputs: readonly [{
37
+ readonly type: "uint256";
38
+ }];
39
+ }];
40
+ /**
41
+ * Aave Pool ABI - getReserveData for fetching reserve info including aToken addresses
42
+ */
43
+ export declare const POOL_GET_RESERVE_DATA_ABI: readonly [{
44
+ readonly inputs: readonly [{
45
+ readonly name: "asset";
46
+ readonly type: "address";
47
+ readonly internalType: "address";
48
+ }];
49
+ readonly name: "getReserveData";
50
+ readonly outputs: readonly [{
51
+ readonly components: readonly [{
52
+ readonly name: "data";
53
+ readonly type: "uint256";
54
+ readonly internalType: "uint256";
55
+ }];
56
+ readonly name: "configuration";
57
+ readonly type: "tuple";
58
+ readonly internalType: "struct DataTypes.ReserveConfigurationMap";
59
+ }, {
60
+ readonly name: "liquidityIndex";
61
+ readonly type: "uint128";
62
+ readonly internalType: "uint128";
63
+ }, {
64
+ readonly name: "currentLiquidityRate";
65
+ readonly type: "uint128";
66
+ readonly internalType: "uint128";
67
+ }, {
68
+ readonly name: "variableBorrowIndex";
69
+ readonly type: "uint128";
70
+ readonly internalType: "uint128";
71
+ }, {
72
+ readonly name: "currentVariableBorrowRate";
73
+ readonly type: "uint128";
74
+ readonly internalType: "uint128";
75
+ }, {
76
+ readonly name: "currentStableBorrowRate";
77
+ readonly type: "uint128";
78
+ readonly internalType: "uint128";
79
+ }, {
80
+ readonly name: "lastUpdateTimestamp";
81
+ readonly type: "uint40";
82
+ readonly internalType: "uint40";
83
+ }, {
84
+ readonly name: "id";
85
+ readonly type: "uint16";
86
+ readonly internalType: "uint16";
87
+ }, {
88
+ readonly name: "aTokenAddress";
89
+ readonly type: "address";
90
+ readonly internalType: "address";
91
+ }, {
92
+ readonly name: "stableDebtTokenAddress";
93
+ readonly type: "address";
94
+ readonly internalType: "address";
95
+ }, {
96
+ readonly name: "variableDebtTokenAddress";
97
+ readonly type: "address";
98
+ readonly internalType: "address";
99
+ }, {
100
+ readonly name: "interestRateStrategyAddress";
101
+ readonly type: "address";
102
+ readonly internalType: "address";
103
+ }, {
104
+ readonly name: "accruedToTreasury";
105
+ readonly type: "uint128";
106
+ readonly internalType: "uint128";
107
+ }, {
108
+ readonly name: "unbacked";
109
+ readonly type: "uint128";
110
+ readonly internalType: "uint128";
111
+ }, {
112
+ readonly name: "isolationModeTotalDebt";
113
+ readonly type: "uint128";
114
+ readonly internalType: "uint128";
115
+ }];
116
+ readonly stateMutability: "view";
117
+ readonly type: "function";
118
+ }];
119
+ /**
120
+ * Aave WETHGateway ABI - for native ETH deposits/withdrawals
121
+ */
122
+ export declare const WETH_GATEWAY_ABI: readonly [{
123
+ readonly name: "depositETH";
124
+ readonly type: "function";
125
+ readonly stateMutability: "payable";
126
+ readonly inputs: readonly [{
127
+ readonly type: "address";
128
+ readonly name: "pool";
129
+ }, {
130
+ readonly type: "address";
131
+ readonly name: "onBehalfOf";
132
+ }, {
133
+ readonly type: "uint16";
134
+ readonly name: "referralCode";
135
+ }];
136
+ readonly outputs: readonly [];
137
+ }, {
138
+ readonly name: "withdrawETH";
139
+ readonly type: "function";
140
+ readonly stateMutability: "nonpayable";
141
+ readonly inputs: readonly [{
142
+ readonly type: "address";
143
+ readonly name: "pool";
144
+ }, {
145
+ readonly type: "uint256";
146
+ readonly name: "amount";
147
+ }, {
148
+ readonly type: "address";
149
+ readonly name: "to";
150
+ }];
151
+ readonly outputs: readonly [];
152
+ }];
153
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../../../src/lend/providers/aave/abis/pool.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2D5B,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG3B,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { parseAbi } from 'viem';
2
+ /**
3
+ * Aave Pool ABI - supply and withdraw functions
4
+ */
5
+ export const POOL_ABI = parseAbi([
6
+ 'function supply(address asset, uint256 amount, address onBehalfOf, uint16 referralCode)',
7
+ 'function withdraw(address asset, uint256 amount, address to) returns (uint256)',
8
+ ]);
9
+ /**
10
+ * Aave Pool ABI - getReserveData for fetching reserve info including aToken addresses
11
+ */
12
+ export const POOL_GET_RESERVE_DATA_ABI = [
13
+ {
14
+ inputs: [{ name: 'asset', type: 'address', internalType: 'address' }],
15
+ name: 'getReserveData',
16
+ outputs: [
17
+ {
18
+ components: [
19
+ { name: 'data', type: 'uint256', internalType: 'uint256' },
20
+ ],
21
+ name: 'configuration',
22
+ type: 'tuple',
23
+ internalType: 'struct DataTypes.ReserveConfigurationMap',
24
+ },
25
+ { name: 'liquidityIndex', type: 'uint128', internalType: 'uint128' },
26
+ {
27
+ name: 'currentLiquidityRate',
28
+ type: 'uint128',
29
+ internalType: 'uint128',
30
+ },
31
+ { name: 'variableBorrowIndex', type: 'uint128', internalType: 'uint128' },
32
+ {
33
+ name: 'currentVariableBorrowRate',
34
+ type: 'uint128',
35
+ internalType: 'uint128',
36
+ },
37
+ {
38
+ name: 'currentStableBorrowRate',
39
+ type: 'uint128',
40
+ internalType: 'uint128',
41
+ },
42
+ { name: 'lastUpdateTimestamp', type: 'uint40', internalType: 'uint40' },
43
+ { name: 'id', type: 'uint16', internalType: 'uint16' },
44
+ { name: 'aTokenAddress', type: 'address', internalType: 'address' },
45
+ {
46
+ name: 'stableDebtTokenAddress',
47
+ type: 'address',
48
+ internalType: 'address',
49
+ },
50
+ {
51
+ name: 'variableDebtTokenAddress',
52
+ type: 'address',
53
+ internalType: 'address',
54
+ },
55
+ {
56
+ name: 'interestRateStrategyAddress',
57
+ type: 'address',
58
+ internalType: 'address',
59
+ },
60
+ { name: 'accruedToTreasury', type: 'uint128', internalType: 'uint128' },
61
+ { name: 'unbacked', type: 'uint128', internalType: 'uint128' },
62
+ {
63
+ name: 'isolationModeTotalDebt',
64
+ type: 'uint128',
65
+ internalType: 'uint128',
66
+ },
67
+ ],
68
+ stateMutability: 'view',
69
+ type: 'function',
70
+ },
71
+ ];
72
+ /**
73
+ * Aave WETHGateway ABI - for native ETH deposits/withdrawals
74
+ */
75
+ export const WETH_GATEWAY_ABI = parseAbi([
76
+ 'function depositETH(address pool, address onBehalfOf, uint16 referralCode) payable',
77
+ 'function withdrawETH(address pool, uint256 amount, address to)',
78
+ ]);
79
+ //# sourceMappingURL=pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../src/lend/providers/aave/abis/pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAE/B;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC/B,yFAAyF;IACzF,gFAAgF;CACjF,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC;QACE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACrE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;iBAC3D;gBACD,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,0CAA0C;aACzD;YACD,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YACpE;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YACzE;gBACE,IAAI,EAAE,2BAA2B;gBACjC,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD;gBACE,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YACvE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YACtD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YACnE;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD;gBACE,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD;gBACE,IAAI,EAAE,6BAA6B;gBACnC,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YACvE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC9D;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aACxB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,oFAAoF;IACpF,gEAAgE;CACjE,CAAC,CAAA"}
@@ -0,0 +1,57 @@
1
+ import type { Address } from 'viem';
2
+ /**
3
+ * Aave V3 Pool addresses for Optimism Superchain networks
4
+ * @description Hardcoded Pool contract addresses for each supported chain
5
+ */
6
+ /**
7
+ * Mainnet Pool addresses
8
+ */
9
+ export declare const POOL_ADDRESSES_MAINNET: Record<number, Address>;
10
+ /**
11
+ * Testnet Pool addresses
12
+ */
13
+ export declare const POOL_ADDRESSES_TESTNET: Record<number, Address>;
14
+ /**
15
+ * All Pool addresses (mainnet + testnet)
16
+ */
17
+ export declare const POOL_ADDRESSES: Record<number, Address>;
18
+ /**
19
+ * Get Pool address for a given chain ID
20
+ * @param chainId - Chain ID
21
+ * @returns Pool address if supported, undefined otherwise
22
+ */
23
+ export declare function getPoolAddress(chainId: number): Address | undefined;
24
+ /**
25
+ * Check if a chain ID has Aave V3 deployed
26
+ * @param chainId - Chain ID to check
27
+ * @returns true if Aave V3 is deployed on this chain
28
+ */
29
+ export declare function isAaveChainSupported(chainId: number): boolean;
30
+ /**
31
+ * Get all supported chain IDs
32
+ * @returns Array of chain IDs with Aave V3 deployed
33
+ */
34
+ export declare function getSupportedChainIds(): number[];
35
+ /**
36
+ * Aave V3 WETHGateway addresses for Optimism Superchain networks
37
+ * @description Gateway contracts that handle native ETH wrapping and depositing
38
+ */
39
+ /**
40
+ * Mainnet WETHGateway addresses
41
+ */
42
+ export declare const WETH_GATEWAY_ADDRESSES_MAINNET: Record<number, Address>;
43
+ /**
44
+ * Testnet WETHGateway addresses
45
+ */
46
+ export declare const WETH_GATEWAY_ADDRESSES_TESTNET: Record<number, Address>;
47
+ /**
48
+ * All WETHGateway addresses (mainnet + testnet)
49
+ */
50
+ export declare const WETH_GATEWAY_ADDRESSES: Record<number, Address>;
51
+ /**
52
+ * Get WETHGateway address for a given chain ID
53
+ * @param chainId - Chain ID
54
+ * @returns WETHGateway address if supported, undefined otherwise
55
+ */
56
+ export declare function getWETHGatewayAddress(chainId: number): Address | undefined;
57
+ //# sourceMappingURL=addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/lend/providers/aave/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGjD,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGjD,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGzC,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAED;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGzD,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGzD,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAGjD,CAAA;AAEV;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE1E"}