@eth-optimism/actions-sdk 0.5.0 → 0.6.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 +61 -22
- 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 +1 -1
- package/dist/actions/shared/morpho/contracts.d.ts.map +1 -0
- 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 +57 -38
- 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 +43 -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/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 +131 -15
- package/dist/core/error/errors.d.ts.map +1 -1
- package/dist/core/error/errors.js +201 -17
- package/dist/core/error/errors.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/services/ChainManager.d.ts.map +1 -1
- package/dist/services/ChainManager.js +26 -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 +69 -7
- package/dist/types/actions.d.ts.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 +2 -2
- package/dist/types/providers.d.ts.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__/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/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 +8 -8
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +13 -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 +28 -2
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +1 -1
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/eoa/EOAWallet.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/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 +51 -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/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 +123 -39
- 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 +2 -2
- package/src/{swap → actions/swap}/__mocks__/MockSwapProvider.ts +6 -2
- package/src/{swap → actions/swap}/core/SwapProvider.ts +88 -55
- 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/actions/swap/namespaces/WalletSwapNamespace.ts +154 -0
- 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/core/error/__tests__/errors.test.ts +236 -0
- package/src/core/error/errors.ts +282 -22
- package/src/index.ts +18 -12
- package/src/services/ChainManager.ts +26 -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 +72 -7
- 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 +2 -2
- package/src/types/swap/base.ts +25 -13
- package/src/utils/{approve.test.ts → __tests__/approve.test.ts} +51 -18
- 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/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 +17 -15
- package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +3 -3
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +54 -3
- package/src/wallet/core/wallets/eoa/EOAWallet.ts +1 -1
- 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/local/LocalWallet.ts +48 -0
- package/src/wallet/node/wallets/local/__tests__/LocalWallet.spec.ts +64 -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/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/namespaces/WalletSwapNamespace.ts +0 -129
- 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/{lend/providers → actions/shared}/morpho/contracts.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,5 +1,9 @@
|
|
|
1
1
|
import type { LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
4
|
+
import type { ActionsContext, SwapSettings } from '@/types/actions.js'
|
|
5
|
+
import type { Asset } from '@/types/asset.js'
|
|
6
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
3
7
|
import type {
|
|
4
8
|
CreateSmartWalletOptions,
|
|
5
9
|
GetSmartWalletOptions,
|
|
@@ -10,6 +14,21 @@ import type { SmartWalletCreationResult } from '@/wallet/core/providers/smart/ab
|
|
|
10
14
|
import type { WalletProvider } from '@/wallet/core/providers/WalletProvider.js'
|
|
11
15
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
12
16
|
import type { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
17
|
+
import { LocalWallet } from '@/wallet/node/wallets/local/LocalWallet.js'
|
|
18
|
+
|
|
19
|
+
function isLocalAccount(value: unknown): value is LocalAccount {
|
|
20
|
+
if (typeof value !== 'object' || value === null) {
|
|
21
|
+
return false
|
|
22
|
+
}
|
|
23
|
+
const record = value as Record<string, unknown>
|
|
24
|
+
return (
|
|
25
|
+
record.type === 'local' &&
|
|
26
|
+
typeof record.address === 'string' &&
|
|
27
|
+
typeof record.signMessage === 'function' &&
|
|
28
|
+
typeof record.signTransaction === 'function' &&
|
|
29
|
+
(!('signTypedData' in record) || typeof record.signTypedData === 'function')
|
|
30
|
+
)
|
|
31
|
+
}
|
|
13
32
|
|
|
14
33
|
/**
|
|
15
34
|
* Provider factory function for lazy initialization
|
|
@@ -21,6 +40,20 @@ type WalletProviderFactory<
|
|
|
21
40
|
S extends SmartWalletProvider,
|
|
22
41
|
> = () => Promise<WalletProvider<THostedProviderType, TToActionsMap, H, S>>
|
|
23
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Adaptive `toActionsWallet` parameter type
|
|
45
|
+
* @description Evaluates to the hosted provider's options map entry plus
|
|
46
|
+
* `LocalAccount` when a hosted provider is configured, or to `LocalAccount`
|
|
47
|
+
* only when no hosted provider is configured (`THostedProviderType` is
|
|
48
|
+
* `never`).
|
|
49
|
+
*/
|
|
50
|
+
type ToActionsWalletParam<
|
|
51
|
+
THostedProviderType extends string,
|
|
52
|
+
TToActionsMap extends Record<THostedProviderType, unknown>,
|
|
53
|
+
> = [THostedProviderType] extends [never]
|
|
54
|
+
? LocalAccount
|
|
55
|
+
: TToActionsMap[THostedProviderType] | LocalAccount
|
|
56
|
+
|
|
24
57
|
/**
|
|
25
58
|
* Wallet namespace that provides unified wallet operations
|
|
26
59
|
* @description Provides access to wallet functionality through a single provider interface.
|
|
@@ -49,11 +82,17 @@ export class WalletNamespace<
|
|
|
49
82
|
private _initPromise: Promise<
|
|
50
83
|
WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
51
84
|
> | null = null
|
|
85
|
+
private readonly chainManager: ChainManager
|
|
86
|
+
private readonly lendProviders: LendProviders
|
|
87
|
+
private readonly swapProviders: SwapProviders
|
|
88
|
+
private readonly supportedAssets: Asset[]
|
|
89
|
+
private readonly swapSettings?: SwapSettings
|
|
52
90
|
|
|
53
91
|
constructor(
|
|
54
92
|
providerOrFactory:
|
|
55
93
|
| WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
56
94
|
| WalletProviderFactory<THostedProviderType, TToActionsMap, H, S>,
|
|
95
|
+
context: ActionsContext,
|
|
57
96
|
) {
|
|
58
97
|
if (typeof providerOrFactory === 'function') {
|
|
59
98
|
this._providerFactory = providerOrFactory
|
|
@@ -61,19 +100,11 @@ export class WalletNamespace<
|
|
|
61
100
|
this._provider = providerOrFactory
|
|
62
101
|
this._providerFactory = () => Promise.resolve(providerOrFactory)
|
|
63
102
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (this._provider) return Promise.resolve(this._provider)
|
|
70
|
-
if (!this._initPromise) {
|
|
71
|
-
this._initPromise = this._providerFactory().then((provider) => {
|
|
72
|
-
this._provider = provider
|
|
73
|
-
return provider
|
|
74
|
-
})
|
|
75
|
-
}
|
|
76
|
-
return this._initPromise
|
|
103
|
+
this.chainManager = context.chainManager
|
|
104
|
+
this.lendProviders = context.lendProviders
|
|
105
|
+
this.swapProviders = context.swapProviders
|
|
106
|
+
this.supportedAssets = context.supportedAssets
|
|
107
|
+
this.swapSettings = context.swapSettings
|
|
77
108
|
}
|
|
78
109
|
|
|
79
110
|
/**
|
|
@@ -82,9 +113,15 @@ export class WalletNamespace<
|
|
|
82
113
|
* advanced functionality beyond the unified interface is needed.
|
|
83
114
|
* Lazily initializes the provider if not yet created.
|
|
84
115
|
* @returns Promise resolving to the configured hosted wallet provider instance
|
|
116
|
+
* @throws Error if no hosted wallet provider is configured
|
|
85
117
|
*/
|
|
86
118
|
async hostedWalletProvider(): Promise<H> {
|
|
87
119
|
const provider = await this.resolveProvider()
|
|
120
|
+
if (!provider.hostedWalletProvider) {
|
|
121
|
+
throw new Error(
|
|
122
|
+
'Hosted wallet provider not configured. Please add hostedWalletConfig to ActionsConfig.wallet.',
|
|
123
|
+
)
|
|
124
|
+
}
|
|
88
125
|
return provider.hostedWalletProvider
|
|
89
126
|
}
|
|
90
127
|
|
|
@@ -141,18 +178,30 @@ export class WalletNamespace<
|
|
|
141
178
|
}
|
|
142
179
|
|
|
143
180
|
/**
|
|
144
|
-
* Convert a hosted wallet to an Actions wallet
|
|
145
|
-
* @description
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
181
|
+
* Convert a hosted wallet or local account to an Actions wallet
|
|
182
|
+
* @description Accepts either provider-specific params (for Privy/Turnkey) or a viem
|
|
183
|
+
* `LocalAccount` directly, depending on configuration. When a hosted wallet provider
|
|
184
|
+
* is configured, both shapes are accepted; when none is configured, only a
|
|
185
|
+
* `LocalAccount` is accepted and provider params are a type error.
|
|
186
|
+
* @param params - Provider params or a viem LocalAccount
|
|
149
187
|
* @returns Promise resolving to the Actions wallet instance
|
|
150
188
|
*/
|
|
151
189
|
async toActionsWallet(
|
|
152
|
-
params:
|
|
190
|
+
params: ToActionsWalletParam<THostedProviderType, TToActionsMap>,
|
|
153
191
|
): Promise<Wallet> {
|
|
192
|
+
if (isLocalAccount(params)) {
|
|
193
|
+
return LocalWallet.create({
|
|
194
|
+
account: params,
|
|
195
|
+
chainManager: this.chainManager,
|
|
196
|
+
lendProviders: this.lendProviders,
|
|
197
|
+
swapProviders: this.swapProviders,
|
|
198
|
+
supportedAssets: this.supportedAssets,
|
|
199
|
+
})
|
|
200
|
+
}
|
|
154
201
|
const provider = await this.resolveProvider()
|
|
155
|
-
return provider.hostedWalletToActionsWallet(
|
|
202
|
+
return provider.hostedWalletToActionsWallet(
|
|
203
|
+
params as TToActionsMap[THostedProviderType],
|
|
204
|
+
)
|
|
156
205
|
}
|
|
157
206
|
|
|
158
207
|
/**
|
|
@@ -174,4 +223,17 @@ export class WalletNamespace<
|
|
|
174
223
|
const provider = await this.resolveProvider()
|
|
175
224
|
return provider.getSmartWallet(params)
|
|
176
225
|
}
|
|
226
|
+
|
|
227
|
+
private resolveProvider(): Promise<
|
|
228
|
+
WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
229
|
+
> {
|
|
230
|
+
if (this._provider) return Promise.resolve(this._provider)
|
|
231
|
+
if (!this._initPromise) {
|
|
232
|
+
this._initPromise = this._providerFactory().then((provider) => {
|
|
233
|
+
this._provider = provider
|
|
234
|
+
return provider
|
|
235
|
+
})
|
|
236
|
+
}
|
|
237
|
+
return this._initPromise
|
|
238
|
+
}
|
|
177
239
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PrivyClient } from '@privy-io/node'
|
|
2
2
|
import { getAddress } from 'viem'
|
|
3
|
+
import { privateKeyToAccount } from 'viem/accounts'
|
|
3
4
|
import { unichain } from 'viem/chains'
|
|
4
5
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
6
|
|
|
@@ -9,8 +10,8 @@ import {
|
|
|
9
10
|
getMockAuthorizationContext,
|
|
10
11
|
} from '@/__mocks__/MockPrivyClient.js'
|
|
11
12
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
13
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
12
14
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
13
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
14
15
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
15
16
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
16
17
|
import { WalletNamespace } from '@/wallet/core/namespace/WalletNamespace.js'
|
|
@@ -52,7 +53,12 @@ describe('WalletNamespace', () => {
|
|
|
52
53
|
hostedWalletProvider,
|
|
53
54
|
smartWalletProvider,
|
|
54
55
|
)
|
|
55
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
56
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
57
|
+
chainManager: mockChainManager,
|
|
58
|
+
lendProviders: {},
|
|
59
|
+
swapProviders: {},
|
|
60
|
+
supportedAssets: [],
|
|
61
|
+
})
|
|
56
62
|
|
|
57
63
|
expect(await walletNamespace.hostedWalletProvider()).toBe(
|
|
58
64
|
hostedWalletProvider,
|
|
@@ -79,7 +85,12 @@ describe('WalletNamespace', () => {
|
|
|
79
85
|
hostedWalletProvider,
|
|
80
86
|
smartWalletProvider,
|
|
81
87
|
)
|
|
82
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
88
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
89
|
+
chainManager: mockChainManager,
|
|
90
|
+
lendProviders: {},
|
|
91
|
+
swapProviders: {},
|
|
92
|
+
supportedAssets: [],
|
|
93
|
+
})
|
|
83
94
|
|
|
84
95
|
expect(await walletNamespace.smartWalletProvider()).toBe(
|
|
85
96
|
smartWalletProvider,
|
|
@@ -103,12 +114,17 @@ describe('WalletNamespace', () => {
|
|
|
103
114
|
smartWalletProvider,
|
|
104
115
|
)
|
|
105
116
|
const createSmartWalletSpy = vi.spyOn(walletProvider, 'createSmartWallet')
|
|
106
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
117
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
118
|
+
chainManager: mockChainManager,
|
|
119
|
+
lendProviders: {},
|
|
120
|
+
swapProviders: {},
|
|
121
|
+
supportedAssets: [],
|
|
122
|
+
})
|
|
107
123
|
|
|
108
124
|
// Create a hosted wallet to use as signer
|
|
109
125
|
const privyWallet = createMockPrivyWallet()
|
|
110
126
|
const hostedWallet =
|
|
111
|
-
await walletProvider.hostedWalletProvider
|
|
127
|
+
await walletProvider.hostedWalletProvider!.toActionsWallet({
|
|
112
128
|
walletId: privyWallet.id,
|
|
113
129
|
address: getAddress(privyWallet.address),
|
|
114
130
|
})
|
|
@@ -143,12 +159,17 @@ describe('WalletNamespace', () => {
|
|
|
143
159
|
hostedWalletProvider,
|
|
144
160
|
smartWalletProvider,
|
|
145
161
|
)
|
|
146
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
162
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
163
|
+
chainManager: mockChainManager,
|
|
164
|
+
lendProviders: {},
|
|
165
|
+
swapProviders: {},
|
|
166
|
+
supportedAssets: [],
|
|
167
|
+
})
|
|
147
168
|
|
|
148
169
|
// Create a hosted wallet to use as signer
|
|
149
170
|
const privyWallet = createMockPrivyWallet()
|
|
150
171
|
const hostedWallet =
|
|
151
|
-
await walletProvider.hostedWalletProvider
|
|
172
|
+
await walletProvider.hostedWalletProvider!.toActionsWallet({
|
|
152
173
|
walletId: privyWallet.id,
|
|
153
174
|
address: getAddress(privyWallet.address),
|
|
154
175
|
})
|
|
@@ -228,11 +249,16 @@ describe('WalletNamespace', () => {
|
|
|
228
249
|
smartWalletProvider,
|
|
229
250
|
)
|
|
230
251
|
const getSmartWalletSpy = vi.spyOn(walletProvider, 'getSmartWallet')
|
|
231
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
252
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
253
|
+
chainManager: mockChainManager,
|
|
254
|
+
lendProviders: {},
|
|
255
|
+
swapProviders: {},
|
|
256
|
+
supportedAssets: [],
|
|
257
|
+
})
|
|
232
258
|
|
|
233
259
|
const privyWallet = createMockPrivyWallet()
|
|
234
260
|
const hostedWallet =
|
|
235
|
-
await walletProvider.hostedWalletProvider
|
|
261
|
+
await walletProvider.hostedWalletProvider!.toActionsWallet({
|
|
236
262
|
walletId: privyWallet.id,
|
|
237
263
|
address: getAddress(privyWallet.address),
|
|
238
264
|
})
|
|
@@ -269,11 +295,16 @@ describe('WalletNamespace', () => {
|
|
|
269
295
|
hostedWalletProvider,
|
|
270
296
|
smartWalletProvider,
|
|
271
297
|
)
|
|
272
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
298
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
299
|
+
chainManager: mockChainManager,
|
|
300
|
+
lendProviders: {},
|
|
301
|
+
swapProviders: {},
|
|
302
|
+
supportedAssets: [],
|
|
303
|
+
})
|
|
273
304
|
|
|
274
305
|
const privyWallet = createMockPrivyWallet()
|
|
275
306
|
const hostedWallet =
|
|
276
|
-
await walletProvider.hostedWalletProvider
|
|
307
|
+
await walletProvider.hostedWalletProvider!.toActionsWallet({
|
|
277
308
|
walletId: privyWallet.id,
|
|
278
309
|
address: getAddress(privyWallet.address),
|
|
279
310
|
})
|
|
@@ -305,16 +336,21 @@ describe('WalletNamespace', () => {
|
|
|
305
336
|
hostedWalletProvider,
|
|
306
337
|
smartWalletProvider,
|
|
307
338
|
)
|
|
308
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
339
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
340
|
+
chainManager: mockChainManager,
|
|
341
|
+
lendProviders: {},
|
|
342
|
+
swapProviders: {},
|
|
343
|
+
supportedAssets: [],
|
|
344
|
+
})
|
|
309
345
|
|
|
310
346
|
const privyWallet = createMockPrivyWallet()
|
|
311
347
|
const hostedWallet =
|
|
312
|
-
await walletProvider.hostedWalletProvider
|
|
348
|
+
await walletProvider.hostedWalletProvider!.toActionsWallet({
|
|
313
349
|
walletId: privyWallet.id,
|
|
314
350
|
address: getAddress(privyWallet.address),
|
|
315
351
|
})
|
|
316
352
|
const toActionsWalletSpy = vi.spyOn(
|
|
317
|
-
walletProvider.hostedWalletProvider
|
|
353
|
+
walletProvider.hostedWalletProvider!,
|
|
318
354
|
'toActionsWallet',
|
|
319
355
|
)
|
|
320
356
|
|
|
@@ -333,6 +369,85 @@ describe('WalletNamespace', () => {
|
|
|
333
369
|
})
|
|
334
370
|
})
|
|
335
371
|
|
|
372
|
+
describe('toActionsWallet with LocalAccount', () => {
|
|
373
|
+
it('should create a LocalWallet from a viem LocalAccount', async () => {
|
|
374
|
+
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
375
|
+
privyClient: mockPrivyClient,
|
|
376
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
377
|
+
chainManager: mockChainManager,
|
|
378
|
+
})
|
|
379
|
+
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
380
|
+
mockChainManager,
|
|
381
|
+
{ morpho: mockLendProvider },
|
|
382
|
+
)
|
|
383
|
+
const walletProvider = new WalletProvider(
|
|
384
|
+
hostedWalletProvider,
|
|
385
|
+
smartWalletProvider,
|
|
386
|
+
)
|
|
387
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
388
|
+
chainManager: mockChainManager,
|
|
389
|
+
lendProviders: {},
|
|
390
|
+
swapProviders: {},
|
|
391
|
+
supportedAssets: [],
|
|
392
|
+
})
|
|
393
|
+
|
|
394
|
+
const account = privateKeyToAccount(
|
|
395
|
+
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
|
|
396
|
+
)
|
|
397
|
+
|
|
398
|
+
const wallet = await walletNamespace.toActionsWallet(account)
|
|
399
|
+
|
|
400
|
+
expect(wallet.address).toBe(account.address)
|
|
401
|
+
expect(wallet.signer).toBe(account)
|
|
402
|
+
})
|
|
403
|
+
|
|
404
|
+
it('should expose lend namespace when an Aave provider is configured', async () => {
|
|
405
|
+
const mockAaveProvider = createMockLendProvider()
|
|
406
|
+
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
407
|
+
mockChainManager,
|
|
408
|
+
{ aave: mockAaveProvider },
|
|
409
|
+
)
|
|
410
|
+
const walletProvider = new WalletProvider(undefined, smartWalletProvider)
|
|
411
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
412
|
+
chainManager: mockChainManager,
|
|
413
|
+
lendProviders: { aave: mockAaveProvider },
|
|
414
|
+
swapProviders: {},
|
|
415
|
+
supportedAssets: [],
|
|
416
|
+
})
|
|
417
|
+
|
|
418
|
+
const account = privateKeyToAccount(
|
|
419
|
+
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
const wallet = await walletNamespace.toActionsWallet(account)
|
|
423
|
+
|
|
424
|
+
expect(wallet.lend).toBeDefined()
|
|
425
|
+
})
|
|
426
|
+
|
|
427
|
+
it('should accept a LocalAccount when no hosted wallet provider is configured', async () => {
|
|
428
|
+
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
429
|
+
mockChainManager,
|
|
430
|
+
{ morpho: mockLendProvider },
|
|
431
|
+
)
|
|
432
|
+
const walletProvider = new WalletProvider(undefined, smartWalletProvider)
|
|
433
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
434
|
+
chainManager: mockChainManager,
|
|
435
|
+
lendProviders: {},
|
|
436
|
+
swapProviders: {},
|
|
437
|
+
supportedAssets: [],
|
|
438
|
+
})
|
|
439
|
+
|
|
440
|
+
const account = privateKeyToAccount(
|
|
441
|
+
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80',
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
const wallet = await walletNamespace.toActionsWallet(account)
|
|
445
|
+
|
|
446
|
+
expect(wallet.address).toBe(account.address)
|
|
447
|
+
expect(wallet.signer).toBe(account)
|
|
448
|
+
})
|
|
449
|
+
})
|
|
450
|
+
|
|
336
451
|
describe('createSigner', () => {
|
|
337
452
|
it('should delegate to hosted wallet provider createSigner', async () => {
|
|
338
453
|
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
@@ -349,7 +464,12 @@ describe('WalletNamespace', () => {
|
|
|
349
464
|
smartWalletProvider,
|
|
350
465
|
)
|
|
351
466
|
const createSignerSpy = vi.spyOn(walletProvider, 'createSigner')
|
|
352
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
467
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
468
|
+
chainManager: mockChainManager,
|
|
469
|
+
lendProviders: {},
|
|
470
|
+
swapProviders: {},
|
|
471
|
+
supportedAssets: [],
|
|
472
|
+
})
|
|
353
473
|
|
|
354
474
|
const privyWallet = createMockPrivyWallet()
|
|
355
475
|
const params = {
|
|
@@ -378,7 +498,12 @@ describe('WalletNamespace', () => {
|
|
|
378
498
|
hostedWalletProvider,
|
|
379
499
|
smartWalletProvider,
|
|
380
500
|
)
|
|
381
|
-
const walletNamespace = new WalletNamespace(walletProvider
|
|
501
|
+
const walletNamespace = new WalletNamespace(walletProvider, {
|
|
502
|
+
chainManager: mockChainManager,
|
|
503
|
+
lendProviders: {},
|
|
504
|
+
swapProviders: {},
|
|
505
|
+
supportedAssets: [],
|
|
506
|
+
})
|
|
382
507
|
|
|
383
508
|
const privyWallet = createMockPrivyWallet()
|
|
384
509
|
const signer = await walletNamespace.createSigner({
|
|
@@ -22,10 +22,19 @@ export class WalletProvider<
|
|
|
22
22
|
S extends SmartWalletProvider = SmartWalletProvider,
|
|
23
23
|
> {
|
|
24
24
|
constructor(
|
|
25
|
-
public readonly hostedWalletProvider: H,
|
|
25
|
+
public readonly hostedWalletProvider: H | undefined,
|
|
26
26
|
public readonly smartWalletProvider: S,
|
|
27
27
|
) {}
|
|
28
28
|
|
|
29
|
+
private requireHostedWalletProvider(): H {
|
|
30
|
+
if (!this.hostedWalletProvider) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
'Hosted wallet provider not configured. Please add hostedWalletConfig to ActionsConfig.wallet.',
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
return this.hostedWalletProvider
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
/**
|
|
30
39
|
* Create a new smart wallet
|
|
31
40
|
* @description Creates a smart wallet and attempts to deploy it across all supported chains.
|
|
@@ -52,7 +61,7 @@ export class WalletProvider<
|
|
|
52
61
|
async hostedWalletToActionsWallet(
|
|
53
62
|
params: TToActionsMap[THostedProviderType],
|
|
54
63
|
): Promise<Wallet> {
|
|
55
|
-
return this.
|
|
64
|
+
return this.requireHostedWalletProvider().toActionsWallet(params)
|
|
56
65
|
}
|
|
57
66
|
|
|
58
67
|
/**
|
|
@@ -67,7 +76,7 @@ export class WalletProvider<
|
|
|
67
76
|
async createSigner(
|
|
68
77
|
params: TToActionsMap[THostedProviderType],
|
|
69
78
|
): Promise<LocalAccount> {
|
|
70
|
-
return this.
|
|
79
|
+
return this.requireHostedWalletProvider().createSigner(params)
|
|
71
80
|
}
|
|
72
81
|
|
|
73
82
|
/**
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
getMockAuthorizationContext,
|
|
9
9
|
} from '@/__mocks__/MockPrivyClient.js'
|
|
10
10
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
11
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
11
12
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
12
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
13
13
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
14
14
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
15
15
|
import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ProviderNotConfiguredError } from '@/core/error/errors.js'
|
|
1
2
|
import type { HostedProviderFactory } from '@/wallet/core/providers/hosted/types/index.js'
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -29,7 +30,7 @@ export abstract class HostedWalletProviderRegistry<
|
|
|
29
30
|
const factory = this.registry.get(type) as
|
|
30
31
|
| HostedProviderFactory<TType, TInstanceMap[TType], TConfigMap[TType]>
|
|
31
32
|
| undefined
|
|
32
|
-
if (!factory) throw new
|
|
33
|
+
if (!factory) throw new ProviderNotConfiguredError({ provider: type })
|
|
33
34
|
return factory
|
|
34
35
|
}
|
|
35
36
|
|
package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts
CHANGED
|
@@ -84,7 +84,7 @@ describe('HostedWalletProviderRegistry', () => {
|
|
|
84
84
|
const registry = new TestHostedWalletProviderRegistry()
|
|
85
85
|
// @ts-expect-error: testing runtime error for unknown type
|
|
86
86
|
expect(() => registry.getFactory('unknown')).toThrow(
|
|
87
|
-
'
|
|
87
|
+
"A 'unknown' provider is not configured",
|
|
88
88
|
)
|
|
89
89
|
})
|
|
90
90
|
})
|
package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts
CHANGED
|
@@ -15,8 +15,8 @@ import type {
|
|
|
15
15
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
16
16
|
|
|
17
17
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
18
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
18
19
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
19
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
20
20
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
21
21
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
22
22
|
import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import type { TransactionData } from '@/types/transaction.js'
|
|
5
|
+
import { executeTransactionBatch } from '@/wallet/core/utils/executeTransactionBatch.js'
|
|
6
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
7
|
+
|
|
8
|
+
const CHAIN_ID = 10 as const
|
|
9
|
+
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as Address
|
|
10
|
+
const TX_A: TransactionData = { to: ZERO_ADDRESS, data: '0xaa', value: 0n }
|
|
11
|
+
const TX_B: TransactionData = { to: ZERO_ADDRESS, data: '0xbb', value: 0n }
|
|
12
|
+
|
|
13
|
+
describe('executeTransactionBatch', () => {
|
|
14
|
+
let wallet: Wallet
|
|
15
|
+
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
wallet = {
|
|
18
|
+
send: vi.fn().mockResolvedValue({ kind: 'single' }),
|
|
19
|
+
sendBatch: vi.fn().mockResolvedValue({ kind: 'batch' }),
|
|
20
|
+
} as unknown as Wallet
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
it('throws when the transaction list is empty', async () => {
|
|
24
|
+
await expect(executeTransactionBatch(wallet, [], CHAIN_ID)).rejects.toThrow(
|
|
25
|
+
/empty/,
|
|
26
|
+
)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('calls wallet.send for a single transaction', async () => {
|
|
30
|
+
const result = await executeTransactionBatch(wallet, [TX_A], CHAIN_ID)
|
|
31
|
+
expect(wallet.send).toHaveBeenCalledWith(TX_A, CHAIN_ID)
|
|
32
|
+
expect(wallet.sendBatch).not.toHaveBeenCalled()
|
|
33
|
+
expect(result).toEqual({ kind: 'single' })
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
it('calls wallet.sendBatch for multiple transactions', async () => {
|
|
37
|
+
const result = await executeTransactionBatch(wallet, [TX_A, TX_B], CHAIN_ID)
|
|
38
|
+
expect(wallet.sendBatch).toHaveBeenCalledWith([TX_A, TX_B], CHAIN_ID)
|
|
39
|
+
expect(wallet.send).not.toHaveBeenCalled()
|
|
40
|
+
expect(result).toEqual({ kind: 'batch' })
|
|
41
|
+
})
|
|
42
|
+
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest'
|
|
2
2
|
|
|
3
|
-
import { retryOnStaleRead } from '@/core/utils/retryOnStaleRead.js'
|
|
3
|
+
import { retryOnStaleRead } from '@/wallet/core/utils/retryOnStaleRead.js'
|
|
4
4
|
|
|
5
5
|
describe('retryOnStaleRead', () => {
|
|
6
6
|
it('returns immediately when value is fresh', async () => {
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
2
|
+
import type { TransactionData } from '@/types/transaction.js'
|
|
3
|
+
import type {
|
|
4
|
+
BatchTransactionReturnType,
|
|
5
|
+
TransactionReturnType,
|
|
6
|
+
} from '@/wallet/core/wallets/abstract/types/index.js'
|
|
7
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Dispatch a list of transactions to a wallet.
|
|
11
|
+
* @description Single-element → `wallet.send()`; multi-element →
|
|
12
|
+
* `wallet.sendBatch()`. An empty list is a programming error and throws.
|
|
13
|
+
*
|
|
14
|
+
* Shared by every wallet-signing namespace (WalletLendNamespace,
|
|
15
|
+
* WalletSwapNamespace, WalletBorrowNamespace, …). Implemented as a
|
|
16
|
+
* module-level helper rather than a base class so namespaces can inherit
|
|
17
|
+
* from their domain-specific base (BaseLendNamespace etc.) without a
|
|
18
|
+
* multi-inheritance bind.
|
|
19
|
+
* @param wallet - The wallet that signs and sends the transactions
|
|
20
|
+
* @param transactions - Non-empty list of transactions to dispatch
|
|
21
|
+
* @param chainId - Target chain for the transactions
|
|
22
|
+
* @returns Receipt(s) from the underlying send / sendBatch call
|
|
23
|
+
* @throws Error if `transactions` is empty
|
|
24
|
+
*/
|
|
25
|
+
export async function executeTransactionBatch(
|
|
26
|
+
wallet: Wallet,
|
|
27
|
+
transactions: readonly TransactionData[],
|
|
28
|
+
chainId: SupportedChainId,
|
|
29
|
+
): Promise<TransactionReturnType | BatchTransactionReturnType> {
|
|
30
|
+
if (transactions.length === 0) {
|
|
31
|
+
throw new Error('executeTransactionBatch: empty transaction list')
|
|
32
|
+
}
|
|
33
|
+
if (transactions.length === 1) {
|
|
34
|
+
return wallet.send(transactions[0], chainId)
|
|
35
|
+
}
|
|
36
|
+
return wallet.sendBatch(transactions, chainId)
|
|
37
|
+
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { Address, LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
|
+
import { WalletLendNamespace } from '@/actions/lend/namespaces/WalletLendNamespace.js'
|
|
4
|
+
import { WalletSwapNamespace } from '@/actions/swap/namespaces/WalletSwapNamespace.js'
|
|
3
5
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
4
|
-
import { EnsNamespace } from '@/ens/index.js'
|
|
5
|
-
import { WalletLendNamespace } from '@/lend/namespaces/WalletLendNamespace.js'
|
|
6
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
+
import { EnsNamespace } from '@/services/nameservices/ens/index.js'
|
|
7
8
|
import { fetchERC20Balance, fetchETHBalance } from '@/services/tokenBalance.js'
|
|
8
|
-
import { WalletSwapNamespace } from '@/swap/namespaces/WalletSwapNamespace.js'
|
|
9
9
|
import type { SwapSettings } from '@/types/actions.js'
|
|
10
|
-
import type { Asset, TokenBalance } from '@/types/asset.js'
|
|
10
|
+
import type { Asset, BalanceFetchOptions, TokenBalance } from '@/types/asset.js'
|
|
11
11
|
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
12
12
|
import type { TransactionData } from '@/types/transaction.js'
|
|
13
|
+
import { validateBalanceFetchOptions } from '@/utils/validation.js'
|
|
13
14
|
import type {
|
|
14
15
|
BatchTransactionReturnType,
|
|
15
16
|
TransactionReturnType,
|
|
@@ -84,18 +85,19 @@ export abstract class Wallet {
|
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
/**
|
|
87
|
-
* Get asset balances across all supported chains
|
|
88
|
-
* @description Fetches ETH and ERC20 token balances for this wallet
|
|
89
|
-
*
|
|
88
|
+
* Get asset balances across the requested chains (or all supported chains).
|
|
89
|
+
* @description Fetches ETH and ERC20 token balances for this wallet. By default queries every chain returned by the SDK's `ChainManager`. Pass `options.chainIds` to restrict the query to a subset of those chains; each id is validated against the configured chains and an `InvalidParamsError` / `ChainNotSupportedError` is thrown for unusable input. Uses the configured supported assets from `ActionsConfig.assets` if provided.
|
|
90
|
+
* @param options - Optional `chainIds` filter
|
|
90
91
|
* @returns Promise resolving to array of token balances with chain breakdown
|
|
91
92
|
*/
|
|
92
|
-
async getBalance(): Promise<TokenBalance[]> {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
async getBalance(options?: BalanceFetchOptions): Promise<TokenBalance[]> {
|
|
94
|
+
validateBalanceFetchOptions(options, this.chainManager)
|
|
95
|
+
return Promise.all([
|
|
96
|
+
fetchETHBalance(this.chainManager, this.address, options),
|
|
97
|
+
...this.supportedAssets.map((asset) =>
|
|
98
|
+
fetchERC20Balance(this.chainManager, this.address, asset, options),
|
|
99
|
+
),
|
|
100
|
+
])
|
|
99
101
|
}
|
|
100
102
|
|
|
101
103
|
/**
|
|
@@ -163,7 +165,7 @@ export abstract class Wallet {
|
|
|
163
165
|
* @returns Promise resolving to the transaction hash
|
|
164
166
|
*/
|
|
165
167
|
abstract sendBatch(
|
|
166
|
-
transactionData: TransactionData[],
|
|
168
|
+
transactionData: readonly TransactionData[],
|
|
167
169
|
chainId: SupportedChainId,
|
|
168
170
|
): Promise<BatchTransactionReturnType>
|
|
169
171
|
}
|