@eth-optimism/actions-sdk 0.5.0 → 0.7.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.
- package/dist/__tests__/actions.test.js +1 -1
- package/dist/__tests__/actions.test.js.map +1 -1
- package/dist/{lend → actions/lend}/__mocks__/MockLendProvider.d.ts +6 -6
- package/dist/actions/lend/__mocks__/MockLendProvider.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/__mocks__/MockLendProvider.js +20 -7
- package/dist/actions/lend/__mocks__/MockLendProvider.js.map +1 -0
- package/dist/{lend → actions/lend}/__mocks__/MockMarkets.d.ts +1 -1
- package/dist/actions/lend/__mocks__/MockMarkets.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/__mocks__/MockMarkets.js +1 -1
- package/dist/actions/lend/__mocks__/MockMarkets.js.map +1 -0
- package/dist/{lend → actions/lend}/__mocks__/mockLendTransaction.d.ts +2 -2
- package/dist/actions/lend/__mocks__/mockLendTransaction.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/__mocks__/mockLendTransaction.js +1 -1
- package/dist/actions/lend/__mocks__/mockLendTransaction.js.map +1 -0
- package/dist/{lend → actions/lend}/core/LendProvider.d.ts +38 -22
- package/dist/actions/lend/core/LendProvider.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/core/LendProvider.js +62 -23
- package/dist/actions/lend/core/LendProvider.js.map +1 -0
- package/dist/actions/lend/core/__tests__/LendProvider.test.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/core/__tests__/LendProvider.test.js +57 -3
- package/dist/actions/lend/core/__tests__/LendProvider.test.js.map +1 -0
- package/dist/actions/lend/index.d.ts.map +1 -0
- package/dist/actions/lend/index.js.map +1 -0
- package/dist/actions/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -0
- package/dist/actions/lend/namespaces/ActionsLendNamespace.js.map +1 -0
- package/dist/actions/lend/namespaces/BaseLendNamespace.d.ts +33 -0
- package/dist/actions/lend/namespaces/BaseLendNamespace.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/BaseLendNamespace.js +11 -24
- package/dist/actions/lend/namespaces/BaseLendNamespace.js.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/WalletLendNamespace.d.ts +8 -11
- package/dist/actions/lend/namespaces/WalletLendNamespace.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/WalletLendNamespace.js +13 -15
- package/dist/actions/lend/namespaces/WalletLendNamespace.js.map +1 -0
- package/dist/actions/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.js +1 -1
- package/dist/actions/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -0
- package/dist/actions/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.js +2 -2
- package/dist/actions/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -0
- package/dist/actions/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.js +5 -5
- package/dist/actions/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/AaveLendProvider.d.ts +18 -20
- package/dist/actions/lend/providers/aave/AaveLendProvider.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/AaveLendProvider.js +56 -54
- package/dist/actions/lend/providers/aave/AaveLendProvider.js.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.d.ts +1 -1
- package/dist/actions/lend/providers/aave/__mocks__/mockReserve.d.ts.map +1 -0
- package/dist/actions/lend/providers/aave/__mocks__/mockReserve.js.map +1 -0
- package/dist/actions/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.js +4 -4
- package/dist/actions/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -0
- package/dist/actions/lend/providers/aave/abis/pool.d.ts.map +1 -0
- package/dist/actions/lend/providers/aave/abis/pool.js.map +1 -0
- package/dist/actions/lend/providers/aave/addresses.d.ts.map +1 -0
- package/dist/actions/lend/providers/aave/addresses.js.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/sdk.d.ts +4 -4
- package/dist/actions/lend/providers/aave/sdk.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/aave/sdk.js +10 -5
- package/dist/actions/lend/providers/aave/sdk.js.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/MorphoLendProvider.d.ts +18 -14
- package/dist/actions/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/MorphoLendProvider.js +48 -44
- package/dist/actions/lend/providers/morpho/MorphoLendProvider.js.map +1 -0
- package/dist/actions/lend/providers/morpho/__mocks__/mockVault.d.ts.map +1 -0
- package/dist/actions/lend/providers/morpho/__mocks__/mockVault.js.map +1 -0
- package/dist/actions/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.js +58 -3
- package/dist/actions/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -0
- package/dist/actions/lend/providers/morpho/__tests__/api.test.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/__tests__/api.test.js +2 -2
- package/dist/actions/lend/providers/morpho/__tests__/api.test.js.map +1 -0
- package/dist/actions/lend/providers/morpho/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.js +1 -1
- package/dist/actions/lend/providers/morpho/__tests__/sdk.test.js.map +1 -0
- package/dist/actions/lend/providers/morpho/api.d.ts.map +1 -0
- package/dist/actions/lend/providers/morpho/api.js.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/sdk.d.ts +4 -4
- package/dist/actions/lend/providers/morpho/sdk.d.ts.map +1 -0
- package/dist/{lend → actions/lend}/providers/morpho/sdk.js +18 -7
- package/dist/actions/lend/providers/morpho/sdk.js.map +1 -0
- package/dist/actions/lend/utils/markets.d.ts +26 -0
- package/dist/actions/lend/utils/markets.d.ts.map +1 -0
- package/dist/actions/lend/utils/markets.js +44 -0
- package/dist/actions/lend/utils/markets.js.map +1 -0
- package/dist/actions/shared/BaseNamespace.d.ts +29 -0
- package/dist/actions/shared/BaseNamespace.d.ts.map +1 -0
- package/dist/actions/shared/BaseNamespace.js +31 -0
- package/dist/actions/shared/BaseNamespace.js.map +1 -0
- package/dist/actions/shared/__tests__/BaseNamespace.spec.d.ts +2 -0
- package/dist/actions/shared/__tests__/BaseNamespace.spec.d.ts.map +1 -0
- package/dist/actions/shared/__tests__/BaseNamespace.spec.js +42 -0
- package/dist/actions/shared/__tests__/BaseNamespace.spec.js.map +1 -0
- package/dist/{lend/providers → actions/shared}/morpho/contracts.d.ts +2 -2
- package/dist/actions/shared/morpho/contracts.d.ts.map +1 -0
- package/dist/{lend/providers → actions/shared}/morpho/contracts.js +1 -1
- package/dist/{lend/providers → actions/shared}/morpho/contracts.js.map +1 -1
- package/dist/{types/lend/contracts.d.ts → actions/shared/morpho/types.d.ts} +2 -2
- package/dist/actions/shared/morpho/types.d.ts.map +1 -0
- package/dist/actions/shared/morpho/types.js.map +1 -0
- package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.d.ts +7 -6
- package/dist/actions/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/__mocks__/MockSwapProvider.js +5 -2
- package/dist/actions/swap/__mocks__/MockSwapProvider.js.map +1 -0
- package/dist/{swap → actions/swap}/core/SwapProvider.d.ts +29 -14
- package/dist/actions/swap/core/SwapProvider.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/core/SwapProvider.js +58 -39
- package/dist/actions/swap/core/SwapProvider.js.map +1 -0
- package/dist/actions/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.js +39 -0
- package/dist/actions/swap/core/__tests__/SwapProvider.test.js.map +1 -0
- package/dist/{swap → actions/swap}/core/markets.d.ts +3 -3
- package/dist/actions/swap/core/markets.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/core/markets.js +2 -1
- package/dist/actions/swap/core/markets.js.map +1 -0
- package/dist/actions/swap/index.d.ts.map +1 -0
- package/dist/actions/swap/index.js.map +1 -0
- package/dist/actions/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
- package/dist/actions/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
- package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.d.ts +25 -28
- package/dist/actions/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/namespaces/BaseSwapNamespace.js +58 -59
- package/dist/actions/swap/namespaces/BaseSwapNamespace.js.map +1 -0
- package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts +56 -0
- package/dist/actions/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/namespaces/WalletSwapNamespace.js +46 -23
- package/dist/actions/swap/namespaces/WalletSwapNamespace.js.map +1 -0
- package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.js +2 -2
- package/dist/actions/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
- package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.js +83 -19
- package/dist/actions/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.d.ts +8 -5
- package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.js +14 -5
- package/dist/actions/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
- package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.js +1 -1
- package/dist/actions/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
- package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.js +47 -1
- package/dist/actions/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
- package/dist/actions/swap/providers/uniswap/abis.d.ts.map +1 -0
- package/dist/actions/swap/providers/uniswap/abis.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/addresses.d.ts +1 -1
- package/dist/actions/swap/providers/uniswap/addresses.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/addresses.js +6 -2
- package/dist/actions/swap/providers/uniswap/addresses.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/encoding.d.ts +3 -3
- package/dist/actions/swap/providers/uniswap/encoding.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/encoding.js +2 -2
- package/dist/actions/swap/providers/uniswap/encoding.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/markets.d.ts +3 -3
- package/dist/actions/swap/providers/uniswap/markets.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/markets.js +1 -1
- package/dist/actions/swap/providers/uniswap/markets.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/uniswap/types.d.ts +1 -1
- package/dist/actions/swap/providers/uniswap/types.d.ts.map +1 -0
- package/dist/actions/swap/providers/uniswap/types.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.d.ts +9 -4
- package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.js +37 -11
- package/dist/actions/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +7 -6
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +39 -4
- package/dist/actions/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.js +22 -1
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.d.ts +1 -1
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.js +25 -1
- package/dist/actions/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
- package/dist/actions/swap/providers/velodrome/abis.d.ts.map +1 -0
- package/dist/actions/swap/providers/velodrome/abis.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/addresses.d.ts +1 -1
- package/dist/actions/swap/providers/velodrome/addresses.d.ts.map +1 -0
- package/dist/actions/swap/providers/velodrome/addresses.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/config.d.ts +1 -1
- package/dist/actions/swap/providers/velodrome/config.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/config.js +5 -1
- package/dist/actions/swap/providers/velodrome/config.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.d.ts +3 -3
- package/dist/actions/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/helpers.js +4 -3
- package/dist/actions/swap/providers/velodrome/encoding/helpers.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.d.ts +0 -1
- package/dist/actions/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/index.js +0 -1
- package/dist/actions/swap/providers/velodrome/encoding/index.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.d.ts +3 -3
- package/dist/actions/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.js +2 -1
- package/dist/actions/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.d.ts +24 -3
- package/dist/actions/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.js +22 -10
- package/dist/actions/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.d.ts +23 -3
- package/dist/actions/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.js +24 -13
- package/dist/actions/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/markets.d.ts +3 -3
- package/dist/actions/swap/providers/velodrome/markets.d.ts.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/markets.js +4 -3
- package/dist/actions/swap/providers/velodrome/markets.js.map +1 -0
- package/dist/{swap → actions/swap}/providers/velodrome/types.d.ts +1 -1
- package/dist/actions/swap/providers/velodrome/types.d.ts.map +1 -0
- package/dist/actions/swap/providers/velodrome/types.js +2 -0
- package/dist/actions/swap/providers/velodrome/types.js.map +1 -0
- package/dist/actions.d.ts +4 -3
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +45 -22
- package/dist/actions.js.map +1 -1
- package/dist/constants/supportedChains.d.ts +5790 -2
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +66 -20
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/core/error/__tests__/errors.test.d.ts +2 -0
- package/dist/core/error/__tests__/errors.test.d.ts.map +1 -0
- package/dist/core/error/__tests__/errors.test.js +195 -0
- package/dist/core/error/__tests__/errors.test.js.map +1 -0
- package/dist/core/error/errors.d.ts +155 -15
- package/dist/core/error/errors.d.ts.map +1 -1
- package/dist/core/error/errors.js +229 -17
- package/dist/core/error/errors.js.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/services/ChainManager.d.ts.map +1 -1
- package/dist/services/ChainManager.js +42 -7
- package/dist/services/ChainManager.js.map +1 -1
- package/dist/services/__tests__/ChainManager.spec.d.ts.map +1 -0
- package/dist/services/{ChainManager.spec.js → __tests__/ChainManager.spec.js} +7 -7
- package/dist/services/__tests__/ChainManager.spec.js.map +1 -0
- package/dist/services/__tests__/tokenBalance.spec.d.ts.map +1 -0
- package/dist/services/{tokenBalance.spec.js → __tests__/tokenBalance.spec.js} +42 -5
- package/dist/services/__tests__/tokenBalance.spec.js.map +1 -0
- package/dist/{ens → services/nameservices/ens}/EnsNamespace.d.ts +1 -1
- package/dist/services/nameservices/ens/EnsNamespace.d.ts.map +1 -0
- package/dist/{ens → services/nameservices/ens}/EnsNamespace.js +1 -1
- package/dist/services/nameservices/ens/EnsNamespace.js.map +1 -0
- package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.d.ts.map +1 -0
- package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.js +2 -2
- package/dist/services/nameservices/ens/__tests__/EnsNamespace.spec.js.map +1 -0
- package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts +2 -0
- package/dist/services/nameservices/ens/__tests__/utils.spec.d.ts.map +1 -0
- package/dist/{utils/ens.test.js → services/nameservices/ens/__tests__/utils.spec.js} +3 -3
- package/dist/services/nameservices/ens/__tests__/utils.spec.js.map +1 -0
- package/dist/services/nameservices/ens/errors.d.ts.map +1 -0
- package/dist/services/nameservices/ens/errors.js.map +1 -0
- package/dist/{ens → services/nameservices/ens}/index.d.ts +1 -0
- package/dist/services/nameservices/ens/index.d.ts.map +1 -0
- package/dist/{ens → services/nameservices/ens}/index.js +1 -0
- package/dist/services/nameservices/ens/index.js.map +1 -0
- package/dist/{ens → services/nameservices/ens}/types.d.ts +1 -1
- package/dist/services/nameservices/ens/types.d.ts.map +1 -0
- package/dist/services/nameservices/ens/types.js.map +1 -0
- package/dist/{utils/ens.d.ts → services/nameservices/ens/utils.d.ts} +3 -3
- package/dist/services/nameservices/ens/utils.d.ts.map +1 -0
- package/dist/{utils/ens.js → services/nameservices/ens/utils.js} +3 -3
- package/dist/services/nameservices/ens/utils.js.map +1 -0
- package/dist/services/tokenBalance.d.ts +8 -5
- package/dist/services/tokenBalance.d.ts.map +1 -1
- package/dist/services/tokenBalance.js +15 -8
- package/dist/services/tokenBalance.js.map +1 -1
- package/dist/types/actions.d.ts +80 -13
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/actions.js +22 -1
- package/dist/types/actions.js.map +1 -1
- package/dist/types/asset.d.ts +7 -0
- package/dist/types/asset.d.ts.map +1 -1
- package/dist/types/common/FilterAssetChain.d.ts +13 -0
- package/dist/types/common/FilterAssetChain.d.ts.map +1 -0
- package/dist/types/common/FilterAssetChain.js +2 -0
- package/dist/types/common/FilterAssetChain.js.map +1 -0
- package/dist/types/common/TransactionOptions.d.ts +13 -0
- package/dist/types/common/TransactionOptions.d.ts.map +1 -0
- package/dist/types/common/TransactionOptions.js +2 -0
- package/dist/types/common/TransactionOptions.js.map +1 -0
- package/dist/types/common/index.d.ts +3 -0
- package/dist/types/common/index.d.ts.map +1 -0
- package/dist/types/common/index.js +3 -0
- package/dist/types/common/index.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lend/base.d.ts +44 -34
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/types/lend/base.js +3 -3
- package/dist/types/lend/base.js.map +1 -1
- package/dist/types/lend/index.d.ts +0 -1
- package/dist/types/lend/index.d.ts.map +1 -1
- package/dist/types/lend/index.js +0 -1
- package/dist/types/lend/index.js.map +1 -1
- package/dist/types/providers.d.ts +22 -8
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/providers.js +12 -1
- package/dist/types/providers.js.map +1 -1
- package/dist/types/swap/base.d.ts +25 -13
- package/dist/types/swap/base.d.ts.map +1 -1
- package/dist/types/swap/base.js +3 -3
- package/dist/types/swap/base.js.map +1 -1
- package/dist/utils/__tests__/approve.test.d.ts.map +1 -0
- package/dist/utils/{approve.test.js → __tests__/approve.test.js} +40 -18
- package/dist/utils/__tests__/approve.test.js.map +1 -0
- package/dist/utils/__tests__/assets.test.d.ts.map +1 -0
- package/dist/utils/{assets.test.js → __tests__/assets.test.js} +2 -2
- package/dist/utils/__tests__/assets.test.js.map +1 -0
- package/dist/utils/__tests__/lendConfig.test.d.ts +2 -0
- package/dist/utils/__tests__/lendConfig.test.d.ts.map +1 -0
- package/dist/utils/__tests__/lendConfig.test.js +44 -0
- package/dist/utils/__tests__/lendConfig.test.js.map +1 -0
- package/dist/utils/__tests__/serializers.test.d.ts +2 -0
- package/dist/utils/__tests__/serializers.test.d.ts.map +1 -0
- package/dist/utils/__tests__/serializers.test.js +43 -0
- package/dist/utils/__tests__/serializers.test.js.map +1 -0
- package/dist/utils/__tests__/validateAddresses.test.d.ts.map +1 -0
- package/dist/utils/{validateAddresses.test.js → __tests__/validateAddresses.test.js} +10 -10
- package/dist/utils/__tests__/validateAddresses.test.js.map +1 -0
- package/dist/utils/abi/permit2.d.ts +48 -0
- package/dist/utils/abi/permit2.d.ts.map +1 -0
- package/dist/utils/abi/permit2.js +34 -0
- package/dist/utils/abi/permit2.js.map +1 -0
- package/dist/utils/approve.d.ts +26 -3
- package/dist/utils/approve.d.ts.map +1 -1
- package/dist/utils/approve.js +34 -37
- package/dist/utils/approve.js.map +1 -1
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +3 -2
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/lendConfig.d.ts +9 -0
- package/dist/utils/lendConfig.d.ts.map +1 -0
- package/dist/utils/lendConfig.js +12 -0
- package/dist/utils/lendConfig.js.map +1 -0
- package/dist/utils/serializers.d.ts +16 -0
- package/dist/utils/serializers.d.ts.map +1 -0
- package/dist/utils/serializers.js +18 -0
- package/dist/utils/serializers.js.map +1 -0
- package/dist/utils/validation.d.ts +8 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +28 -8
- package/dist/utils/validation.js.map +1 -1
- package/dist/wallet/core/error/errors.d.ts +21 -0
- package/dist/wallet/core/error/errors.d.ts.map +1 -0
- package/dist/wallet/core/error/errors.js +24 -0
- package/dist/wallet/core/error/errors.js.map +1 -0
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +24 -8
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js +48 -17
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +105 -10
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/WalletProvider.d.ts +3 -2
- package/dist/wallet/core/providers/WalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/WalletProvider.js +8 -2
- package/dist/wallet/core/providers/WalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js +2 -1
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +1 -1
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts +2 -0
- package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.d.ts.map +1 -0
- package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js +31 -0
- package/dist/wallet/core/utils/__tests__/executeTransactionBatch.spec.js.map +1 -0
- package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +1 -0
- package/dist/wallet/core/utils/__tests__/retryOnStaleRead.spec.js.map +1 -0
- package/dist/wallet/core/utils/executeTransactionBatch.d.ts +22 -0
- package/dist/wallet/core/utils/executeTransactionBatch.d.ts.map +1 -0
- package/dist/wallet/core/utils/executeTransactionBatch.js +26 -0
- package/dist/wallet/core/utils/executeTransactionBatch.js.map +1 -0
- package/dist/wallet/core/utils/retryOnStaleRead.d.ts.map +1 -0
- package/dist/wallet/core/utils/retryOnStaleRead.js.map +1 -0
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +17 -8
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +24 -12
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +3 -3
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +41 -2
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +13 -5
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/eoa/EOAWallet.js +17 -12
- package/dist/wallet/core/wallets/eoa/EOAWallet.js.map +1 -1
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +37 -20
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts +1 -1
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +2 -2
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
- package/dist/wallet/node/index.d.ts +1 -0
- package/dist/wallet/node/index.d.ts.map +1 -1
- package/dist/wallet/node/index.js +1 -0
- package/dist/wallet/node/index.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +4 -1
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -1
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/local/LocalWallet.d.ts +24 -0
- package/dist/wallet/node/wallets/local/LocalWallet.d.ts.map +1 -0
- package/dist/wallet/node/wallets/local/LocalWallet.js +21 -0
- package/dist/wallet/node/wallets/local/LocalWallet.js.map +1 -0
- package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts +2 -0
- package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.d.ts.map +1 -0
- package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js +52 -0
- package/dist/wallet/node/wallets/local/__tests__/LocalWallet.spec.js.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +2 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +2 -1
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -1
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/actions.test.ts +3 -1
- package/src/{lend → actions/lend}/__mocks__/MockLendProvider.ts +24 -9
- package/src/{lend → actions/lend}/__mocks__/mockLendTransaction.ts +2 -2
- package/src/{lend → actions/lend}/core/LendProvider.ts +125 -41
- package/src/{lend → actions/lend}/core/__tests__/LendProvider.test.ts +82 -3
- package/src/actions/lend/index.ts +3 -0
- package/src/{lend → actions/lend}/namespaces/BaseLendNamespace.ts +20 -37
- package/src/{lend → actions/lend}/namespaces/WalletLendNamespace.ts +15 -22
- package/src/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.ts +3 -3
- package/src/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.ts +3 -3
- package/src/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.ts +6 -6
- package/src/{lend → actions/lend}/providers/aave/AaveLendProvider.ts +65 -73
- package/src/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.ts +7 -7
- package/src/{lend → actions/lend}/providers/aave/sdk.ts +15 -9
- package/src/{lend → actions/lend}/providers/morpho/MorphoLendProvider.ts +67 -53
- package/src/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.ts +79 -5
- package/src/{lend → actions/lend}/providers/morpho/__tests__/api.test.ts +3 -3
- package/src/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.ts +2 -2
- package/src/{lend → actions/lend}/providers/morpho/sdk.ts +23 -12
- package/src/actions/lend/utils/markets.ts +62 -0
- package/src/actions/shared/BaseNamespace.ts +46 -0
- package/src/actions/shared/__tests__/BaseNamespace.spec.ts +58 -0
- package/src/{lend/providers → actions/shared}/morpho/contracts.ts +3 -3
- package/src/{swap → actions/swap}/__mocks__/MockSwapProvider.ts +6 -2
- package/src/{swap → actions/swap}/core/SwapProvider.ts +89 -57
- package/src/{swap → actions/swap}/core/__tests__/SwapProvider.test.ts +51 -1
- package/src/{swap → actions/swap}/core/markets.ts +2 -1
- package/src/actions/swap/index.ts +19 -0
- package/src/{swap → actions/swap}/namespaces/ActionsSwapNamespace.ts +1 -1
- package/src/{swap → actions/swap}/namespaces/BaseSwapNamespace.ts +92 -90
- package/src/{swap → actions/swap}/namespaces/WalletSwapNamespace.ts +60 -34
- package/src/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.ts +6 -6
- package/src/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.ts +110 -22
- package/src/{swap → actions/swap}/providers/uniswap/UniswapSwapProvider.ts +34 -14
- package/src/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +2 -2
- package/src/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.ts +65 -3
- package/src/{swap → actions/swap}/providers/uniswap/addresses.ts +5 -1
- package/src/{swap → actions/swap}/providers/uniswap/encoding.ts +3 -3
- package/src/{swap → actions/swap}/providers/uniswap/markets.ts +2 -2
- package/src/{swap → actions/swap}/providers/velodrome/VelodromeSwapProvider.ts +71 -31
- package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +2 -2
- package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +8 -7
- package/src/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +46 -5
- package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.ts +31 -2
- package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.ts +34 -3
- package/src/{swap → actions/swap}/providers/velodrome/config.ts +5 -1
- package/src/{swap → actions/swap}/providers/velodrome/encoding/helpers.ts +3 -2
- package/src/{swap → actions/swap}/providers/velodrome/encoding/index.ts +0 -1
- package/src/{swap → actions/swap}/providers/velodrome/encoding/poolRouter.ts +4 -3
- package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/cl.ts +31 -23
- package/src/{swap → actions/swap}/providers/velodrome/encoding/routers/v2.ts +34 -27
- package/src/{swap → actions/swap}/providers/velodrome/markets.ts +4 -3
- package/src/actions.ts +68 -37
- package/src/constants/supportedChains.ts +81 -21
- package/src/core/error/__tests__/errors.test.ts +236 -0
- package/src/core/error/errors.ts +319 -22
- package/src/index.ts +31 -13
- package/src/services/ChainManager.ts +45 -9
- package/src/services/{ChainManager.spec.ts → __tests__/ChainManager.spec.ts} +6 -6
- package/src/services/{tokenBalance.spec.ts → __tests__/tokenBalance.spec.ts} +56 -1
- package/src/{ens → services/nameservices/ens}/EnsNamespace.ts +1 -1
- package/src/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.ts +6 -4
- package/src/{utils/ens.test.ts → services/nameservices/ens/__tests__/utils.spec.ts} +3 -2
- package/src/{ens → services/nameservices/ens}/index.ts +5 -0
- package/src/{utils/ens.ts → services/nameservices/ens/utils.ts} +3 -3
- package/src/services/tokenBalance.ts +16 -7
- package/src/types/actions.ts +96 -16
- package/src/types/asset.ts +8 -0
- package/src/types/common/FilterAssetChain.ts +13 -0
- package/src/types/common/TransactionOptions.ts +12 -0
- package/src/types/common/index.ts +2 -0
- package/src/types/index.ts +1 -0
- package/src/types/lend/base.ts +48 -36
- package/src/types/lend/index.ts +0 -1
- package/src/types/providers.ts +26 -8
- package/src/types/swap/base.ts +25 -13
- package/src/utils/{approve.test.ts → __tests__/approve.test.ts} +51 -18
- package/src/utils/__tests__/lendConfig.test.ts +52 -0
- package/src/utils/__tests__/serializers.test.ts +53 -0
- package/src/utils/{validateAddresses.test.ts → __tests__/validateAddresses.test.ts} +9 -9
- package/src/utils/abi/permit2.ts +33 -0
- package/src/utils/approve.ts +48 -37
- package/src/utils/assets.ts +6 -6
- package/src/utils/lendConfig.ts +17 -0
- package/src/utils/serializers.ts +21 -0
- package/src/utils/validation.ts +42 -15
- package/src/wallet/core/error/errors.ts +30 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +82 -20
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +141 -16
- package/src/wallet/core/providers/WalletProvider.ts +12 -3
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +1 -1
- package/src/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.ts +2 -1
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +1 -1
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +1 -1
- package/src/wallet/core/utils/__tests__/executeTransactionBatch.spec.ts +42 -0
- package/src/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.ts +1 -1
- package/src/wallet/core/utils/executeTransactionBatch.ts +37 -0
- package/src/wallet/core/wallets/abstract/Wallet.ts +29 -15
- package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +3 -3
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +69 -3
- package/src/wallet/core/wallets/eoa/EOAWallet.ts +18 -13
- package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +43 -24
- package/src/wallet/core/wallets/smart/abstract/SmartWallet.ts +1 -1
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +3 -3
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +1 -1
- package/src/wallet/node/index.ts +1 -0
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +1 -1
- package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
- package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +4 -1
- package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -1
- package/src/wallet/node/wallets/local/LocalWallet.ts +48 -0
- package/src/wallet/node/wallets/local/__tests__/LocalWallet.spec.ts +65 -0
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -1
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -1
- package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +1 -1
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +1 -1
- package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +2 -1
- package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +2 -1
- package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -1
- package/dist/core/asset/__mocks__/mockAsset.d.ts +0 -6
- package/dist/core/asset/__mocks__/mockAsset.d.ts.map +0 -1
- package/dist/core/asset/__mocks__/mockAsset.js +0 -12
- package/dist/core/asset/__mocks__/mockAsset.js.map +0 -1
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +0 -1
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.js.map +0 -1
- package/dist/core/utils/retryOnStaleRead.d.ts.map +0 -1
- package/dist/core/utils/retryOnStaleRead.js.map +0 -1
- package/dist/ens/EnsNamespace.d.ts.map +0 -1
- package/dist/ens/EnsNamespace.js.map +0 -1
- package/dist/ens/EnsNamespace.spec.d.ts.map +0 -1
- package/dist/ens/EnsNamespace.spec.js.map +0 -1
- package/dist/ens/errors.d.ts.map +0 -1
- package/dist/ens/errors.js.map +0 -1
- package/dist/ens/index.d.ts.map +0 -1
- package/dist/ens/index.js.map +0 -1
- package/dist/ens/types.d.ts.map +0 -1
- package/dist/ens/types.js.map +0 -1
- package/dist/lend/__mocks__/MockLendProvider.d.ts.map +0 -1
- package/dist/lend/__mocks__/MockLendProvider.js.map +0 -1
- package/dist/lend/__mocks__/MockMarkets.d.ts.map +0 -1
- package/dist/lend/__mocks__/MockMarkets.js.map +0 -1
- package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +0 -1
- package/dist/lend/__mocks__/mockLendTransaction.js.map +0 -1
- package/dist/lend/core/LendProvider.d.ts.map +0 -1
- package/dist/lend/core/LendProvider.js.map +0 -1
- package/dist/lend/core/__tests__/LendProvider.test.d.ts.map +0 -1
- package/dist/lend/core/__tests__/LendProvider.test.js.map +0 -1
- package/dist/lend/index.d.ts.map +0 -1
- package/dist/lend/index.js.map +0 -1
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +0 -1
- package/dist/lend/namespaces/ActionsLendNamespace.js.map +0 -1
- package/dist/lend/namespaces/BaseLendNamespace.d.ts +0 -43
- package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +0 -1
- package/dist/lend/namespaces/BaseLendNamespace.js.map +0 -1
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +0 -1
- package/dist/lend/namespaces/WalletLendNamespace.js.map +0 -1
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +0 -1
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +0 -1
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +0 -1
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +0 -1
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +0 -1
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +0 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +0 -1
- package/dist/lend/providers/aave/AaveLendProvider.js.map +0 -1
- package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +0 -1
- package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +0 -1
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +0 -1
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +0 -1
- package/dist/lend/providers/aave/abis/pool.d.ts.map +0 -1
- package/dist/lend/providers/aave/abis/pool.js.map +0 -1
- package/dist/lend/providers/aave/addresses.d.ts.map +0 -1
- package/dist/lend/providers/aave/addresses.js.map +0 -1
- package/dist/lend/providers/aave/sdk.d.ts.map +0 -1
- package/dist/lend/providers/aave/sdk.js.map +0 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +0 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +0 -1
- package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts.map +0 -1
- package/dist/lend/providers/morpho/__mocks__/mockVault.js.map +0 -1
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +0 -1
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +0 -1
- package/dist/lend/providers/morpho/__tests__/api.test.d.ts.map +0 -1
- package/dist/lend/providers/morpho/__tests__/api.test.js.map +0 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts.map +0 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +0 -1
- package/dist/lend/providers/morpho/api.d.ts.map +0 -1
- package/dist/lend/providers/morpho/api.js.map +0 -1
- package/dist/lend/providers/morpho/contracts.d.ts.map +0 -1
- package/dist/lend/providers/morpho/sdk.d.ts.map +0 -1
- package/dist/lend/providers/morpho/sdk.js.map +0 -1
- package/dist/services/ChainManager.spec.d.ts.map +0 -1
- package/dist/services/ChainManager.spec.js.map +0 -1
- package/dist/services/tokenBalance.spec.d.ts.map +0 -1
- package/dist/services/tokenBalance.spec.js.map +0 -1
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +0 -1
- package/dist/swap/__mocks__/MockSwapProvider.js.map +0 -1
- package/dist/swap/core/SwapProvider.d.ts.map +0 -1
- package/dist/swap/core/SwapProvider.js.map +0 -1
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +0 -1
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +0 -1
- package/dist/swap/core/markets.d.ts.map +0 -1
- package/dist/swap/core/markets.js.map +0 -1
- package/dist/swap/index.d.ts.map +0 -1
- package/dist/swap/index.js.map +0 -1
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +0 -1
- package/dist/swap/namespaces/ActionsSwapNamespace.js.map +0 -1
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +0 -1
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +0 -1
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +0 -35
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +0 -1
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +0 -1
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +0 -1
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +0 -1
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +0 -1
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +0 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +0 -1
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +0 -1
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +0 -1
- package/dist/swap/providers/uniswap/abis.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/abis.js.map +0 -1
- package/dist/swap/providers/uniswap/addresses.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/addresses.js.map +0 -1
- package/dist/swap/providers/uniswap/encoding.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/encoding.js.map +0 -1
- package/dist/swap/providers/uniswap/markets.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/markets.js.map +0 -1
- package/dist/swap/providers/uniswap/types.d.ts.map +0 -1
- package/dist/swap/providers/uniswap/types.js.map +0 -1
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +0 -1
- package/dist/swap/providers/velodrome/abis.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/abis.js.map +0 -1
- package/dist/swap/providers/velodrome/addresses.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/addresses.js.map +0 -1
- package/dist/swap/providers/velodrome/config.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/config.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/helpers.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/index.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/index.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +0 -15
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/approval.js +0 -33
- package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +0 -1
- package/dist/swap/providers/velodrome/markets.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/markets.js.map +0 -1
- package/dist/swap/providers/velodrome/types.d.ts.map +0 -1
- package/dist/swap/providers/velodrome/types.js.map +0 -1
- package/dist/types/lend/contracts.d.ts.map +0 -1
- package/dist/types/lend/contracts.js +0 -2
- package/dist/types/lend/contracts.js.map +0 -1
- package/dist/utils/approve.test.d.ts.map +0 -1
- package/dist/utils/approve.test.js.map +0 -1
- package/dist/utils/assets.test.d.ts.map +0 -1
- package/dist/utils/assets.test.js.map +0 -1
- package/dist/utils/ens.d.ts.map +0 -1
- package/dist/utils/ens.js.map +0 -1
- package/dist/utils/ens.test.d.ts +0 -2
- package/dist/utils/ens.test.d.ts.map +0 -1
- package/dist/utils/ens.test.js.map +0 -1
- package/dist/utils/markets.d.ts +0 -17
- package/dist/utils/markets.d.ts.map +0 -1
- package/dist/utils/markets.js +0 -25
- package/dist/utils/markets.js.map +0 -1
- package/dist/utils/validateAddresses.test.d.ts.map +0 -1
- package/dist/utils/validateAddresses.test.js.map +0 -1
- package/src/core/asset/__mocks__/mockAsset.ts +0 -13
- package/src/lend/index.ts +0 -3
- package/src/swap/index.ts +0 -19
- package/src/swap/providers/velodrome/encoding/routers/approval.ts +0 -45
- package/src/utils/markets.ts +0 -35
- /package/dist/{lend → actions/lend}/core/__tests__/LendProvider.test.d.ts +0 -0
- /package/dist/{lend → actions/lend}/index.d.ts +0 -0
- /package/dist/{lend → actions/lend}/index.js +0 -0
- /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.d.ts +0 -0
- /package/dist/{lend → actions/lend}/namespaces/ActionsLendNamespace.js +0 -0
- /package/dist/{lend → actions/lend}/namespaces/__tests__/ActionsLendNamespace.spec.d.ts +0 -0
- /package/dist/{lend → actions/lend}/namespaces/__tests__/BaseLendNamespace.spec.d.ts +0 -0
- /package/dist/{lend → actions/lend}/namespaces/__tests__/WalletLendNamespace.spec.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.js +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/__tests__/AaveLendProvider.test.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/abis/pool.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/abis/pool.js +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/addresses.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/aave/addresses.js +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.js +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/__tests__/MorphoLendProvider.test.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/__tests__/api.test.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/__tests__/sdk.test.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/api.d.ts +0 -0
- /package/dist/{lend → actions/lend}/providers/morpho/api.js +0 -0
- /package/dist/{swap/providers/uniswap → actions/shared/morpho}/types.js +0 -0
- /package/dist/{swap → actions/swap}/core/__tests__/SwapProvider.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/index.d.ts +0 -0
- /package/dist/{swap → actions/swap}/index.js +0 -0
- /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.d.ts +0 -0
- /package/dist/{swap → actions/swap}/namespaces/ActionsSwapNamespace.js +0 -0
- /package/dist/{swap → actions/swap}/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +0 -0
- /package/dist/{swap → actions/swap}/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/uniswap/__tests__/sdk.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/uniswap/abis.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/uniswap/abis.js +0 -0
- /package/dist/{swap/providers/velodrome → actions/swap/providers/uniswap}/types.js +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.cl.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.js +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/__tests__/encoding.v2.test.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/abis.d.ts +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/abis.js +0 -0
- /package/dist/{swap → actions/swap}/providers/velodrome/addresses.js +0 -0
- /package/dist/services/{ChainManager.spec.d.ts → __tests__/ChainManager.spec.d.ts} +0 -0
- /package/dist/services/{tokenBalance.spec.d.ts → __tests__/tokenBalance.spec.d.ts} +0 -0
- /package/dist/{ens → services/nameservices/ens/__tests__}/EnsNamespace.spec.d.ts +0 -0
- /package/dist/{ens → services/nameservices/ens}/errors.d.ts +0 -0
- /package/dist/{ens → services/nameservices/ens}/errors.js +0 -0
- /package/dist/{ens → services/nameservices/ens}/types.js +0 -0
- /package/dist/utils/{approve.test.d.ts → __tests__/approve.test.d.ts} +0 -0
- /package/dist/utils/{assets.test.d.ts → __tests__/assets.test.d.ts} +0 -0
- /package/dist/utils/{validateAddresses.test.d.ts → __tests__/validateAddresses.test.d.ts} +0 -0
- /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.d.ts +0 -0
- /package/dist/{core → wallet/core}/utils/__tests__/retryOnStaleRead.spec.js +0 -0
- /package/dist/{core → wallet/core}/utils/retryOnStaleRead.d.ts +0 -0
- /package/dist/{core → wallet/core}/utils/retryOnStaleRead.js +0 -0
- /package/src/{lend → actions/lend}/__mocks__/MockMarkets.ts +0 -0
- /package/src/{lend → actions/lend}/namespaces/ActionsLendNamespace.ts +0 -0
- /package/src/{lend → actions/lend}/providers/aave/__mocks__/mockReserve.ts +0 -0
- /package/src/{lend → actions/lend}/providers/aave/abis/pool.ts +0 -0
- /package/src/{lend → actions/lend}/providers/aave/addresses.ts +0 -0
- /package/src/{lend → actions/lend}/providers/morpho/__mocks__/mockVault.ts +0 -0
- /package/src/{lend → actions/lend}/providers/morpho/api.ts +0 -0
- /package/src/{types/lend/contracts.ts → actions/shared/morpho/types.ts} +0 -0
- /package/src/{swap → actions/swap}/providers/uniswap/abis.ts +0 -0
- /package/src/{swap → actions/swap}/providers/uniswap/types.ts +0 -0
- /package/src/{swap → actions/swap}/providers/velodrome/__tests__/encoding.helpers.ts +0 -0
- /package/src/{swap → actions/swap}/providers/velodrome/abis.ts +0 -0
- /package/src/{swap → actions/swap}/providers/velodrome/addresses.ts +0 -0
- /package/src/{swap → actions/swap}/providers/velodrome/types.ts +0 -0
- /package/src/{ens → services/nameservices/ens}/errors.ts +0 -0
- /package/src/{ens → services/nameservices/ens}/types.ts +0 -0
- /package/src/utils/{assets.test.ts → __tests__/assets.test.ts} +0 -0
- /package/src/{core → wallet/core}/utils/retryOnStaleRead.ts +0 -0
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
2
|
import { parseUnits } from 'viem'
|
|
3
3
|
|
|
4
|
+
import { validateMarketAsset } from '@/actions/lend/utils/markets.js'
|
|
4
5
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
-
import {
|
|
6
|
+
import { SUPPORTED_CHAIN_IDS } from '@/constants/supportedChains.js'
|
|
7
|
+
import {
|
|
8
|
+
AddressRequiredError,
|
|
9
|
+
AssetMetadataRequiredError,
|
|
10
|
+
MarketIdRequiredError,
|
|
11
|
+
MarketNotAllowedError,
|
|
12
|
+
} from '@/core/error/errors.js'
|
|
6
13
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
-
import type {
|
|
14
|
+
import type {
|
|
15
|
+
ApprovalMode,
|
|
16
|
+
LendProviderConfig,
|
|
17
|
+
LendSettings,
|
|
18
|
+
} from '@/types/actions.js'
|
|
8
19
|
import type { Asset } from '@/types/asset.js'
|
|
9
20
|
import type {
|
|
10
21
|
ClosePositionParams,
|
|
@@ -16,15 +27,27 @@ import type {
|
|
|
16
27
|
LendMarketConfig,
|
|
17
28
|
LendMarketId,
|
|
18
29
|
LendMarketPosition,
|
|
30
|
+
LendOpenPosition,
|
|
19
31
|
LendOpenPositionInternalParams,
|
|
20
32
|
LendOpenPositionParams,
|
|
21
33
|
LendTransaction,
|
|
22
34
|
TransactionData,
|
|
23
35
|
} from '@/types/lend/index.js'
|
|
24
|
-
import {
|
|
25
|
-
|
|
36
|
+
import {
|
|
37
|
+
buildErc20ApprovalTx,
|
|
38
|
+
resolveApprovalMode,
|
|
39
|
+
resolveErc20ApprovalAmount,
|
|
40
|
+
} from '@/utils/approve.js'
|
|
41
|
+
import { isNativeAsset } from '@/utils/assets.js'
|
|
26
42
|
import { validateChainSupported } from '@/utils/validation.js'
|
|
27
43
|
|
|
44
|
+
/** Inputs for the base class's ERC-20 lend approval helper. */
|
|
45
|
+
interface BuildLendApprovalParams {
|
|
46
|
+
position: LendOpenPosition
|
|
47
|
+
approvalMode: ApprovalMode
|
|
48
|
+
amountWei: bigint
|
|
49
|
+
}
|
|
50
|
+
|
|
28
51
|
/**
|
|
29
52
|
* Lending provider abstract class
|
|
30
53
|
* @description Base class for lending provider implementations
|
|
@@ -35,6 +58,9 @@ export abstract class LendProvider<
|
|
|
35
58
|
/** Lending provider configuration */
|
|
36
59
|
protected readonly _config: TConfig
|
|
37
60
|
|
|
61
|
+
/** Shared lend settings (defaults applied across all lend providers) */
|
|
62
|
+
protected readonly _settings: LendSettings
|
|
63
|
+
|
|
38
64
|
/** Chain manager for blockchain interactions */
|
|
39
65
|
protected readonly chainManager: ChainManager
|
|
40
66
|
|
|
@@ -42,9 +68,15 @@ export abstract class LendProvider<
|
|
|
42
68
|
* Create a new lending provider
|
|
43
69
|
* @param config - Provider-specific lending configuration
|
|
44
70
|
* @param chainManager - Chain manager for blockchain interactions
|
|
71
|
+
* @param settings - Shared lend settings applied across all providers
|
|
45
72
|
*/
|
|
46
|
-
protected constructor(
|
|
73
|
+
protected constructor(
|
|
74
|
+
config: TConfig,
|
|
75
|
+
chainManager: ChainManager,
|
|
76
|
+
settings?: LendSettings,
|
|
77
|
+
) {
|
|
47
78
|
this._config = config
|
|
79
|
+
this._settings = settings ?? {}
|
|
48
80
|
this.chainManager = chainManager
|
|
49
81
|
}
|
|
50
82
|
|
|
@@ -52,14 +84,6 @@ export abstract class LendProvider<
|
|
|
52
84
|
return this._config
|
|
53
85
|
}
|
|
54
86
|
|
|
55
|
-
/**
|
|
56
|
-
* Chain IDs supported by the underlying protocol.
|
|
57
|
-
* @description Each provider implements this to declare the chains its protocol
|
|
58
|
-
* is deployed on, without any SDK-level or developer-config filtering.
|
|
59
|
-
* @returns Array of chain IDs the protocol natively supports
|
|
60
|
-
*/
|
|
61
|
-
abstract protocolSupportedChainIds(): number[]
|
|
62
|
-
|
|
63
87
|
/**
|
|
64
88
|
* Effective supported chain IDs.
|
|
65
89
|
* @description Intersection of the protocol's supported chains,
|
|
@@ -67,12 +91,12 @@ export abstract class LendProvider<
|
|
|
67
91
|
* All validation in public methods uses this set.
|
|
68
92
|
* @returns Array of chain IDs usable through this provider instance
|
|
69
93
|
*/
|
|
70
|
-
supportedChainIds():
|
|
94
|
+
supportedChainIds(): SupportedChainId[] {
|
|
71
95
|
const configuredChains = this.chainManager.getSupportedChains()
|
|
72
96
|
return this.protocolSupportedChainIds().filter(
|
|
73
|
-
(id) =>
|
|
74
|
-
(
|
|
75
|
-
(configuredChains as number[]).includes(id),
|
|
97
|
+
(id): id is SupportedChainId =>
|
|
98
|
+
(SUPPORTED_CHAIN_IDS as readonly number[]).includes(id) &&
|
|
99
|
+
(configuredChains as readonly number[]).includes(id),
|
|
76
100
|
)
|
|
77
101
|
}
|
|
78
102
|
|
|
@@ -86,7 +110,7 @@ export abstract class LendProvider<
|
|
|
86
110
|
*/
|
|
87
111
|
async openPosition(params: LendOpenPositionParams): Promise<LendTransaction> {
|
|
88
112
|
if (!params.walletAddress) {
|
|
89
|
-
throw new
|
|
113
|
+
throw new AddressRequiredError('walletAddress')
|
|
90
114
|
}
|
|
91
115
|
|
|
92
116
|
this.validateConfigSupported(params.marketId)
|
|
@@ -97,11 +121,36 @@ export abstract class LendProvider<
|
|
|
97
121
|
params.asset.metadata.decimals,
|
|
98
122
|
)
|
|
99
123
|
|
|
100
|
-
|
|
124
|
+
const position = await this._openPosition({
|
|
101
125
|
...params,
|
|
102
126
|
amountWei,
|
|
103
127
|
walletAddress: params.walletAddress,
|
|
104
128
|
})
|
|
129
|
+
|
|
130
|
+
// Native deposits send ETH inline as msg.value; no approval is needed.
|
|
131
|
+
// ERC-20 deposits resolve approval mode and build an approve(spender, amount) tx.
|
|
132
|
+
const approval = isNativeAsset(params.asset)
|
|
133
|
+
? undefined
|
|
134
|
+
: this.buildLendApproval({
|
|
135
|
+
position,
|
|
136
|
+
approvalMode: resolveApprovalMode(
|
|
137
|
+
params.approvalMode,
|
|
138
|
+
this._config.approvalMode,
|
|
139
|
+
this._settings.approvalMode,
|
|
140
|
+
),
|
|
141
|
+
amountWei,
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
return {
|
|
145
|
+
amount: amountWei,
|
|
146
|
+
assetAddress: position.assetAddress,
|
|
147
|
+
marketId: params.marketId.address,
|
|
148
|
+
apy: position.apy,
|
|
149
|
+
transactionData: {
|
|
150
|
+
...(approval ? { approval } : {}),
|
|
151
|
+
position: position.transaction,
|
|
152
|
+
},
|
|
153
|
+
}
|
|
105
154
|
}
|
|
106
155
|
|
|
107
156
|
/**
|
|
@@ -155,13 +204,13 @@ export abstract class LendProvider<
|
|
|
155
204
|
): Promise<LendMarketPosition> {
|
|
156
205
|
// For now, require marketId (asset-only and empty params not yet supported)
|
|
157
206
|
if (!marketId) {
|
|
158
|
-
throw new
|
|
159
|
-
'
|
|
207
|
+
throw new MarketIdRequiredError(
|
|
208
|
+
'Querying all positions or by asset is not yet supported.',
|
|
160
209
|
)
|
|
161
210
|
}
|
|
162
211
|
|
|
163
212
|
if (asset) {
|
|
164
|
-
throw new
|
|
213
|
+
throw new MarketIdRequiredError(
|
|
165
214
|
'Filtering by asset is not yet supported. Please provide only marketId.',
|
|
166
215
|
)
|
|
167
216
|
}
|
|
@@ -182,7 +231,7 @@ export abstract class LendProvider<
|
|
|
182
231
|
*/
|
|
183
232
|
async closePosition(params: ClosePositionParams): Promise<LendTransaction> {
|
|
184
233
|
if (!params.walletAddress) {
|
|
185
|
-
throw new
|
|
234
|
+
throw new AddressRequiredError('walletAddress')
|
|
186
235
|
}
|
|
187
236
|
|
|
188
237
|
this.validateConfigSupported(params.marketId)
|
|
@@ -198,7 +247,7 @@ export abstract class LendProvider<
|
|
|
198
247
|
|
|
199
248
|
const assetMetadata = params.asset?.metadata
|
|
200
249
|
if (!assetMetadata) {
|
|
201
|
-
throw new
|
|
250
|
+
throw new AssetMetadataRequiredError('decimal conversion')
|
|
202
251
|
}
|
|
203
252
|
|
|
204
253
|
// Convert human-readable amount to wei using the asset's decimals
|
|
@@ -222,7 +271,7 @@ export abstract class LendProvider<
|
|
|
222
271
|
* @returns true if chain is supported, false otherwise
|
|
223
272
|
*/
|
|
224
273
|
protected isChainSupported(chainId: number): boolean {
|
|
225
|
-
return this.supportedChainIds().includes(chainId)
|
|
274
|
+
return (this.supportedChainIds() as readonly number[]).includes(chainId)
|
|
226
275
|
}
|
|
227
276
|
|
|
228
277
|
/**
|
|
@@ -248,10 +297,46 @@ export abstract class LendProvider<
|
|
|
248
297
|
)
|
|
249
298
|
|
|
250
299
|
if (!foundMarket) {
|
|
300
|
+
throw new MarketNotAllowedError({
|
|
301
|
+
address: marketId.address,
|
|
302
|
+
chainId: marketId.chainId,
|
|
303
|
+
reason: 'Market is not in the market allowlist',
|
|
304
|
+
})
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Build an ERC20 approval transaction
|
|
310
|
+
* @param tokenAddress - Address of the token to approve
|
|
311
|
+
* @param spender - Address to approve spending for
|
|
312
|
+
* @param amount - Amount to approve
|
|
313
|
+
* @returns Transaction data for the approval
|
|
314
|
+
*/
|
|
315
|
+
protected buildApprovalTx(
|
|
316
|
+
tokenAddress: Address,
|
|
317
|
+
spender: Address,
|
|
318
|
+
amount: bigint,
|
|
319
|
+
): TransactionData {
|
|
320
|
+
return buildErc20ApprovalTx(tokenAddress, spender, amount)
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Build the approval transaction for an ERC-20 lend deposit. Caller is
|
|
325
|
+
* expected to skip this for native deposits.
|
|
326
|
+
* @throws if the provider's `_openPosition` result is missing `spender`
|
|
327
|
+
*/
|
|
328
|
+
private buildLendApproval(params: BuildLendApprovalParams): TransactionData {
|
|
329
|
+
const { position, approvalMode, amountWei } = params
|
|
330
|
+
if (!position.spender) {
|
|
251
331
|
throw new Error(
|
|
252
|
-
`
|
|
332
|
+
`LendOpenPosition.spender is required for ERC-20 deposits (assetAddress: ${position.assetAddress})`,
|
|
253
333
|
)
|
|
254
334
|
}
|
|
335
|
+
return buildErc20ApprovalTx(
|
|
336
|
+
position.assetAddress,
|
|
337
|
+
position.spender,
|
|
338
|
+
resolveErc20ApprovalAmount(approvalMode, amountWei),
|
|
339
|
+
)
|
|
255
340
|
}
|
|
256
341
|
|
|
257
342
|
/**
|
|
@@ -273,31 +358,30 @@ export abstract class LendProvider<
|
|
|
273
358
|
}
|
|
274
359
|
|
|
275
360
|
/**
|
|
276
|
-
*
|
|
277
|
-
* @param tokenAddress - Address of the token to approve
|
|
278
|
-
* @param spender - Address to approve spending for
|
|
279
|
-
* @param amount - Amount to approve
|
|
280
|
-
* @returns Transaction data for the approval
|
|
361
|
+
* Abstract methods that must be implemented by providers
|
|
281
362
|
*/
|
|
282
|
-
protected buildApprovalTx(
|
|
283
|
-
tokenAddress: Address,
|
|
284
|
-
spender: Address,
|
|
285
|
-
amount: bigint,
|
|
286
|
-
): TransactionData {
|
|
287
|
-
return buildErc20ApprovalTx(tokenAddress, spender, amount)
|
|
288
|
-
}
|
|
289
363
|
|
|
290
364
|
/**
|
|
291
|
-
*
|
|
365
|
+
* Chain IDs supported by the underlying protocol.
|
|
366
|
+
* @description Each provider implements this to declare the chains its protocol
|
|
367
|
+
* is deployed on, without any SDK-level or developer-config filtering.
|
|
368
|
+
* @returns Array of chain IDs the protocol natively supports
|
|
292
369
|
*/
|
|
370
|
+
abstract protocolSupportedChainIds(): number[]
|
|
293
371
|
|
|
294
372
|
/**
|
|
295
|
-
*
|
|
373
|
+
* Describe a deposit for opening a lending position. Providers describe
|
|
374
|
+
* **what** needs to happen (the spender that needs allowance + the deposit
|
|
375
|
+
* calldata + APY snapshot); the base class owns **how** the approval is
|
|
376
|
+
* built (amount sized via `approvalMode`, native deposits skipped, etc.).
|
|
377
|
+
*
|
|
378
|
+
* Return `spender: undefined` for native-asset deposits where value is sent
|
|
379
|
+
* inline as `msg.value` and no ERC-20 approval is required.
|
|
296
380
|
* @description Must be implemented by providers
|
|
297
381
|
*/
|
|
298
382
|
protected abstract _openPosition(
|
|
299
383
|
params: LendOpenPositionInternalParams,
|
|
300
|
-
): Promise<
|
|
384
|
+
): Promise<LendOpenPosition>
|
|
301
385
|
|
|
302
386
|
/**
|
|
303
387
|
* Provider implementation of getMarket method
|
|
@@ -2,8 +2,14 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { describe, expect, it } from 'vitest'
|
|
3
3
|
|
|
4
4
|
import { MockUSDCAsset } from '@/__mocks__/MockAssets.js'
|
|
5
|
-
import { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
6
|
-
import
|
|
5
|
+
import { MockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
6
|
+
import { LendProvider } from '@/actions/lend/core/LendProvider.js'
|
|
7
|
+
import type {
|
|
8
|
+
LendMarketConfig,
|
|
9
|
+
LendMarketId,
|
|
10
|
+
LendOpenPositionParams,
|
|
11
|
+
LendTransaction,
|
|
12
|
+
} from '@/types/lend/index.js'
|
|
7
13
|
import { validateChainSupported } from '@/utils/validation.js'
|
|
8
14
|
|
|
9
15
|
// Test helper class that exposes protected validation methods as public
|
|
@@ -161,12 +167,85 @@ describe('LendProvider', () => {
|
|
|
161
167
|
})
|
|
162
168
|
|
|
163
169
|
expect(result.amount).toBe(1000000000n)
|
|
164
|
-
expect(result.
|
|
170
|
+
expect(result.assetAddress).toBe('0x123')
|
|
165
171
|
expect(result.marketId).toBe('0x1234')
|
|
166
172
|
expect(result.apy).toBe(0.05)
|
|
167
173
|
})
|
|
168
174
|
})
|
|
169
175
|
|
|
176
|
+
describe('approvalMode resolution', () => {
|
|
177
|
+
const mockAsset = {
|
|
178
|
+
address: {
|
|
179
|
+
84532: '0x1111111111111111111111111111111111111111' as Address,
|
|
180
|
+
},
|
|
181
|
+
metadata: { symbol: 'USDC', name: 'USD Coin', decimals: 6 },
|
|
182
|
+
type: 'erc20' as const,
|
|
183
|
+
}
|
|
184
|
+
const baseParams = {
|
|
185
|
+
amount: 1000,
|
|
186
|
+
asset: mockAsset,
|
|
187
|
+
marketId: {
|
|
188
|
+
address: '0x2222222222222222222222222222222222222222' as Address,
|
|
189
|
+
chainId: 84532,
|
|
190
|
+
} as LendMarketId,
|
|
191
|
+
walletAddress: '0x3333333333333333333333333333333333333333' as Address,
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// MockLendProvider replaces `openPosition` with a vi.fn() in its
|
|
195
|
+
// constructor. To exercise the real base-class flow (which builds the
|
|
196
|
+
// approval tx around `_openPosition`'s output), call through the prototype.
|
|
197
|
+
const callBaseOpenPosition = (
|
|
198
|
+
provider: MockLendProvider,
|
|
199
|
+
params: LendOpenPositionParams,
|
|
200
|
+
): Promise<LendTransaction> =>
|
|
201
|
+
LendProvider.prototype.openPosition.call(
|
|
202
|
+
provider,
|
|
203
|
+
params,
|
|
204
|
+
) as Promise<LendTransaction>
|
|
205
|
+
|
|
206
|
+
// Last 32 bytes of approve(spender, amount) hold `amount`.
|
|
207
|
+
const approvalAmountHex = (result: LendTransaction): string =>
|
|
208
|
+
(result.transactionData.approval?.data ?? '').slice(-64)
|
|
209
|
+
|
|
210
|
+
// 1000 USDC at 6 decimals = 1_000_000_000 = 0x3b9aca00
|
|
211
|
+
const EXACT_AMOUNT_HEX = '3b9aca00'
|
|
212
|
+
const MAX_UINT256_HEX = 'f'.repeat(64)
|
|
213
|
+
|
|
214
|
+
it('defaults to "exact" — approval encodes the required amount', async () => {
|
|
215
|
+
const provider = new MockLendProvider()
|
|
216
|
+
const result = await callBaseOpenPosition(provider, baseParams)
|
|
217
|
+
expect(approvalAmountHex(result).replace(/^0+/, '')).toBe(
|
|
218
|
+
EXACT_AMOUNT_HEX,
|
|
219
|
+
)
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
it('honours per-call "max" override — approval uses maxUint256', async () => {
|
|
223
|
+
const provider = new MockLendProvider()
|
|
224
|
+
const result = await callBaseOpenPosition(provider, {
|
|
225
|
+
...baseParams,
|
|
226
|
+
approvalMode: 'max',
|
|
227
|
+
})
|
|
228
|
+
expect(approvalAmountHex(result)).toBe(MAX_UINT256_HEX)
|
|
229
|
+
})
|
|
230
|
+
|
|
231
|
+
it('honours per-provider config approvalMode default', async () => {
|
|
232
|
+
const provider = new MockLendProvider({ approvalMode: 'max' })
|
|
233
|
+
const result = await callBaseOpenPosition(provider, baseParams)
|
|
234
|
+
expect(approvalAmountHex(result)).toBe(MAX_UINT256_HEX)
|
|
235
|
+
})
|
|
236
|
+
|
|
237
|
+
it('per-call override beats per-provider config', async () => {
|
|
238
|
+
const provider = new MockLendProvider({ approvalMode: 'max' })
|
|
239
|
+
const result = await callBaseOpenPosition(provider, {
|
|
240
|
+
...baseParams,
|
|
241
|
+
approvalMode: 'exact',
|
|
242
|
+
})
|
|
243
|
+
expect(approvalAmountHex(result).replace(/^0+/, '')).toBe(
|
|
244
|
+
EXACT_AMOUNT_HEX,
|
|
245
|
+
)
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
|
|
170
249
|
describe('supportedChainIds', () => {
|
|
171
250
|
it('should return array of supported chain IDs', () => {
|
|
172
251
|
const provider = new MockLendProvider()
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { LendProvider } from '@/actions/lend/core/LendProvider.js'
|
|
2
|
+
import { findMarketInAllowlist } from '@/actions/lend/utils/markets.js'
|
|
3
|
+
import { BaseNamespace } from '@/actions/shared/BaseNamespace.js'
|
|
4
|
+
import { ProviderNotConfiguredError } from '@/core/error/errors.js'
|
|
5
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
3
6
|
import type {
|
|
4
7
|
GetLendMarketParams,
|
|
5
8
|
GetLendMarketsParams,
|
|
@@ -10,13 +13,16 @@ import type { LendProviders } from '@/types/providers.js'
|
|
|
10
13
|
|
|
11
14
|
export type { LendProviders } from '@/types/providers.js'
|
|
12
15
|
|
|
16
|
+
type ConfiguredLendProvider = LendProvider<LendProviderConfig>
|
|
17
|
+
|
|
13
18
|
/**
|
|
14
19
|
* Base Lend Namespace
|
|
15
|
-
* @description Shared lending operations for Actions and Wallet namespaces
|
|
20
|
+
* @description Shared lending operations for Actions and Wallet namespaces.
|
|
16
21
|
*/
|
|
17
|
-
export abstract class BaseLendNamespace
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
export abstract class BaseLendNamespace extends BaseNamespace<
|
|
23
|
+
ConfiguredLendProvider,
|
|
24
|
+
LendProviders
|
|
25
|
+
> {
|
|
20
26
|
/**
|
|
21
27
|
* Get all markets across all configured providers
|
|
22
28
|
* @param params - Optional filtering parameters
|
|
@@ -39,27 +45,6 @@ export abstract class BaseLendNamespace {
|
|
|
39
45
|
return provider.getMarket(params)
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
/**
|
|
43
|
-
* Get supported chain IDs across all providers
|
|
44
|
-
* @returns Array of unique chain IDs supported by any provider
|
|
45
|
-
*/
|
|
46
|
-
supportedChainIds(): number[] {
|
|
47
|
-
const allChains = this.getAllProviders().flatMap((p) =>
|
|
48
|
-
p.supportedChainIds(),
|
|
49
|
-
)
|
|
50
|
-
return [...new Set(allChains)]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Get all configured providers
|
|
55
|
-
* @returns Array of configured providers
|
|
56
|
-
*/
|
|
57
|
-
protected getAllProviders(): Array<MorphoLendProvider | AaveLendProvider> {
|
|
58
|
-
return [this.providers.morpho, this.providers.aave].filter(
|
|
59
|
-
Boolean,
|
|
60
|
-
) as Array<MorphoLendProvider | AaveLendProvider>
|
|
61
|
-
}
|
|
62
|
-
|
|
63
48
|
/**
|
|
64
49
|
* Route a market to the correct provider
|
|
65
50
|
* @param marketId - Market identifier to route
|
|
@@ -68,18 +53,16 @@ export abstract class BaseLendNamespace {
|
|
|
68
53
|
*/
|
|
69
54
|
protected getProviderForMarket(
|
|
70
55
|
marketId: LendMarketId,
|
|
71
|
-
):
|
|
56
|
+
): ConfiguredLendProvider {
|
|
72
57
|
for (const provider of this.getAllProviders()) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
m.chainId === marketId.chainId,
|
|
77
|
-
)
|
|
78
|
-
if (market) return provider
|
|
58
|
+
if (findMarketInAllowlist(provider.config.marketAllowlist, marketId)) {
|
|
59
|
+
return provider
|
|
60
|
+
}
|
|
79
61
|
}
|
|
80
62
|
|
|
81
|
-
throw new
|
|
82
|
-
|
|
83
|
-
|
|
63
|
+
throw new ProviderNotConfiguredError({
|
|
64
|
+
provider: marketId.address,
|
|
65
|
+
details: `No provider configured for market on chain ${marketId.chainId}`,
|
|
66
|
+
})
|
|
84
67
|
}
|
|
85
68
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { BaseLendNamespace } from '@/actions/lend/namespaces/BaseLendNamespace.js'
|
|
1
2
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
3
|
+
import { MarketIdRequiredError } from '@/core/error/errors.js'
|
|
2
4
|
import type {
|
|
3
5
|
ClosePositionParams,
|
|
4
6
|
GetPositionParams,
|
|
@@ -7,10 +9,10 @@ import type {
|
|
|
7
9
|
LendTransaction,
|
|
8
10
|
LendTransactionReceipt,
|
|
9
11
|
} from '@/types/lend/index.js'
|
|
12
|
+
import type { LendProviders } from '@/types/providers.js'
|
|
13
|
+
import { executeTransactionBatch } from '@/wallet/core/utils/executeTransactionBatch.js'
|
|
10
14
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
11
15
|
|
|
12
|
-
import { BaseLendNamespace, type LendProviders } from './BaseLendNamespace.js'
|
|
13
|
-
|
|
14
16
|
/**
|
|
15
17
|
* Wallet Lend Namespace
|
|
16
18
|
* @description Full lending operations available on wallet.lend
|
|
@@ -27,8 +29,6 @@ export class WalletLendNamespace extends BaseLendNamespace {
|
|
|
27
29
|
* Open a lending position
|
|
28
30
|
* @description Signs and sends a lend transaction from the wallet for the given amount and asset
|
|
29
31
|
* @param params - Lending position parameters
|
|
30
|
-
* @param params.marketId - Market identifier to open position in
|
|
31
|
-
* @param params.amount - Amount to lend
|
|
32
32
|
* @returns Promise resolving to transaction receipt
|
|
33
33
|
*/
|
|
34
34
|
async openPosition(
|
|
@@ -41,19 +41,17 @@ export class WalletLendNamespace extends BaseLendNamespace {
|
|
|
41
41
|
walletAddress: this.wallet.address,
|
|
42
42
|
})
|
|
43
43
|
|
|
44
|
-
return this.
|
|
44
|
+
return this.dispatch(lendTransaction, params.marketId.chainId)
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* Get position information for this wallet
|
|
49
49
|
* @param params - Position query parameters
|
|
50
|
-
* @param params.marketId - Market identifier (required)
|
|
51
|
-
* @param params.asset - Asset filter (not yet supported)
|
|
52
50
|
* @returns Promise resolving to position information
|
|
53
51
|
*/
|
|
54
52
|
async getPosition(params: GetPositionParams): Promise<LendMarketPosition> {
|
|
55
53
|
if (!params.marketId) {
|
|
56
|
-
throw new
|
|
54
|
+
throw new MarketIdRequiredError()
|
|
57
55
|
}
|
|
58
56
|
|
|
59
57
|
const provider = this.getProviderForMarket(params.marketId)
|
|
@@ -68,8 +66,6 @@ export class WalletLendNamespace extends BaseLendNamespace {
|
|
|
68
66
|
/**
|
|
69
67
|
* Close a lending position (withdraw from market)
|
|
70
68
|
* @param params - Position closing parameters
|
|
71
|
-
* @param params.marketId - Market identifier to close position in
|
|
72
|
-
* @param params.amount - Amount to withdraw
|
|
73
69
|
* @returns Promise resolving to transaction receipt
|
|
74
70
|
*/
|
|
75
71
|
async closePosition(
|
|
@@ -82,25 +78,22 @@ export class WalletLendNamespace extends BaseLendNamespace {
|
|
|
82
78
|
walletAddress: this.wallet.address,
|
|
83
79
|
})
|
|
84
80
|
|
|
85
|
-
return this.
|
|
81
|
+
return this.dispatch(closeTransaction, params.marketId.chainId)
|
|
86
82
|
}
|
|
87
83
|
|
|
88
84
|
/**
|
|
89
|
-
*
|
|
85
|
+
* Send a lend transaction, batching an ERC-20 approval ahead of the
|
|
86
|
+
* position call when one was provided by the provider. Defers to
|
|
87
|
+
* `executeTransactionBatch` for the actual 1-vs-N send/sendBatch dispatch.
|
|
90
88
|
*/
|
|
91
|
-
private
|
|
89
|
+
private dispatch(
|
|
92
90
|
transaction: LendTransaction,
|
|
93
91
|
chainId: SupportedChainId,
|
|
94
92
|
): Promise<LendTransactionReceipt> {
|
|
95
93
|
const { transactionData } = transaction
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
chainId,
|
|
101
|
-
)
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return this.wallet.send(transactionData.position, chainId)
|
|
94
|
+
const txs = transactionData.approval
|
|
95
|
+
? [transactionData.approval, transactionData.position]
|
|
96
|
+
: [transactionData.position]
|
|
97
|
+
return executeTransactionBatch(this.wallet, txs, chainId)
|
|
105
98
|
}
|
|
106
99
|
}
|
|
@@ -2,9 +2,9 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
3
|
|
|
4
4
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
5
|
-
import type { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
6
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
7
|
-
import { ActionsLendNamespace } from '@/lend/namespaces/ActionsLendNamespace.js'
|
|
5
|
+
import type { MockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
6
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
7
|
+
import { ActionsLendNamespace } from '@/actions/lend/namespaces/ActionsLendNamespace.js'
|
|
8
8
|
|
|
9
9
|
describe('ActionsLendNamespace', () => {
|
|
10
10
|
let mockProvider: MockLendProvider
|
|
@@ -2,12 +2,12 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
3
|
|
|
4
4
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
5
|
-
import type { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
5
|
+
import type { MockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
6
6
|
import {
|
|
7
7
|
createMockLendProvider,
|
|
8
8
|
MockLendProvider as MockLendProviderClass,
|
|
9
|
-
} from '@/lend/__mocks__/MockLendProvider.js'
|
|
10
|
-
import { BaseLendNamespace } from '@/lend/namespaces/BaseLendNamespace.js'
|
|
9
|
+
} from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
10
|
+
import { BaseLendNamespace } from '@/actions/lend/namespaces/BaseLendNamespace.js'
|
|
11
11
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
12
12
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
13
13
|
|
|
@@ -3,9 +3,9 @@ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstrac
|
|
|
3
3
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
4
|
|
|
5
5
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
6
|
-
import type { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
7
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
8
|
-
import { WalletLendNamespace } from '@/lend/namespaces/WalletLendNamespace.js'
|
|
6
|
+
import type { MockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
7
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
8
|
+
import { WalletLendNamespace } from '@/actions/lend/namespaces/WalletLendNamespace.js'
|
|
9
9
|
import type { TransactionData } from '@/types/lend/index.js'
|
|
10
10
|
import { createMock as createSmartWalletMock } from '@/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js'
|
|
11
11
|
import type { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
@@ -121,7 +121,7 @@ describe('WalletLendNamespace', () => {
|
|
|
121
121
|
const marketId = mockMarketId
|
|
122
122
|
const mockTransaction = {
|
|
123
123
|
amount: 1000000000n,
|
|
124
|
-
|
|
124
|
+
assetAddress: mockAsset.address[130] as Address,
|
|
125
125
|
marketId: marketId.address,
|
|
126
126
|
apy: 0.05,
|
|
127
127
|
transactionData: {
|
|
@@ -169,7 +169,7 @@ describe('WalletLendNamespace', () => {
|
|
|
169
169
|
|
|
170
170
|
const mockTransaction = {
|
|
171
171
|
amount: 100n,
|
|
172
|
-
|
|
172
|
+
assetAddress: getRandomAddress(),
|
|
173
173
|
marketId: closeParams.marketId.address,
|
|
174
174
|
apy: 0.05,
|
|
175
175
|
transactionData: {
|
|
@@ -234,7 +234,7 @@ describe('WalletLendNamespace', () => {
|
|
|
234
234
|
}
|
|
235
235
|
const mockTransaction = {
|
|
236
236
|
amount: 1000000000n,
|
|
237
|
-
|
|
237
|
+
assetAddress: mockAsset.address[130] as Address,
|
|
238
238
|
marketId: marketId.address,
|
|
239
239
|
apy: 0.05,
|
|
240
240
|
timestamp: Date.now(),
|