@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
package/src/utils/assets.ts
CHANGED
|
@@ -2,6 +2,10 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { parseUnits } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import {
|
|
6
|
+
AssetNotSupportedOnChainError,
|
|
7
|
+
NativeAssetAddressError,
|
|
8
|
+
} from '@/core/error/errors.js'
|
|
5
9
|
import type { Asset } from '@/types/asset.js'
|
|
6
10
|
|
|
7
11
|
/**
|
|
@@ -75,14 +79,10 @@ export function getAssetAddress(
|
|
|
75
79
|
): Address {
|
|
76
80
|
const address = asset.address[chainId]
|
|
77
81
|
if (!address) {
|
|
78
|
-
throw new
|
|
79
|
-
`Asset ${asset.metadata.symbol} is not supported on chain ${chainId}`,
|
|
80
|
-
)
|
|
82
|
+
throw new AssetNotSupportedOnChainError(asset.metadata.symbol, chainId)
|
|
81
83
|
}
|
|
82
84
|
if (address === 'native') {
|
|
83
|
-
throw new
|
|
84
|
-
`Asset ${asset.metadata.symbol} is a native asset and has no contract address.`,
|
|
85
|
-
)
|
|
85
|
+
throw new NativeAssetAddressError(asset.metadata.symbol)
|
|
86
86
|
}
|
|
87
87
|
return address
|
|
88
88
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LendConfig } from '@/types/actions.js'
|
|
2
|
+
import type { LendMarketConfig } from '@/types/lend/base.js'
|
|
3
|
+
import { LEND_PROVIDER_NAMES } from '@/types/providers.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Flatten every provider's `marketAllowlist` from a `LendConfig` into a single
|
|
7
|
+
* list. Returns an empty list when `lend` is undefined or no provider declares
|
|
8
|
+
* an allowlist.
|
|
9
|
+
*/
|
|
10
|
+
export function getLendMarketAllowlist(
|
|
11
|
+
lend: LendConfig | undefined,
|
|
12
|
+
): readonly LendMarketConfig[] {
|
|
13
|
+
if (!lend) return []
|
|
14
|
+
return LEND_PROVIDER_NAMES.flatMap(
|
|
15
|
+
(name) => lend[name]?.marketAllowlist ?? [],
|
|
16
|
+
)
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Deep-clones an object, replacing every `bigint` with its
|
|
3
|
+
* decimal string form. Needed because `JSON.stringify` throws on `bigint`
|
|
4
|
+
* but Actions SDK return types carry `bigint` amounts, balances, and ids.
|
|
5
|
+
*
|
|
6
|
+
* The returned object preserves the input type signature for ergonomics;
|
|
7
|
+
* `bigint` fields are strings at runtime and callers must treat them as
|
|
8
|
+
* such. Use only at serialization boundaries (HTTP responses, CLI stdout).
|
|
9
|
+
* @param obj - Value to clone. Objects, arrays, and primitives are
|
|
10
|
+
* supported; cycles, `Map`, `Set`, `Date`, and `undefined` follow standard
|
|
11
|
+
* `JSON.stringify` semantics.
|
|
12
|
+
* @returns A structurally identical clone with every `bigint` coerced to
|
|
13
|
+
* its base-10 string representation.
|
|
14
|
+
*/
|
|
15
|
+
export function serializeBigInt<T>(obj: T): T {
|
|
16
|
+
return JSON.parse(
|
|
17
|
+
JSON.stringify(obj, (_key, value) =>
|
|
18
|
+
typeof value === 'bigint' ? value.toString() : value,
|
|
19
|
+
),
|
|
20
|
+
)
|
|
21
|
+
}
|
package/src/utils/validation.ts
CHANGED
|
@@ -2,7 +2,19 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { isAddress } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
-
import
|
|
5
|
+
import {
|
|
6
|
+
AmountRequiredError,
|
|
7
|
+
AssetNotSupportedOnChainError,
|
|
8
|
+
ChainNotSupportedError,
|
|
9
|
+
ConflictingAmountsError,
|
|
10
|
+
InvalidAmountError,
|
|
11
|
+
InvalidParamsError,
|
|
12
|
+
SameAssetError,
|
|
13
|
+
SlippageOutOfRangeError,
|
|
14
|
+
ZeroAddressError,
|
|
15
|
+
} from '@/core/error/errors.js'
|
|
16
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
17
|
+
import type { Asset, BalanceFetchOptions } from '@/types/asset.js'
|
|
6
18
|
import { isAssetSupportedOnChain } from '@/utils/assets.js'
|
|
7
19
|
|
|
8
20
|
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'
|
|
@@ -12,13 +24,13 @@ export function validateAmountProvided(
|
|
|
12
24
|
amountOut?: number,
|
|
13
25
|
): void {
|
|
14
26
|
if (amountIn === undefined && amountOut === undefined) {
|
|
15
|
-
throw new
|
|
27
|
+
throw new AmountRequiredError()
|
|
16
28
|
}
|
|
17
29
|
}
|
|
18
30
|
|
|
19
31
|
export function validateAmountPositiveIfExists(amount?: number): void {
|
|
20
32
|
if (amount !== undefined && amount <= 0) {
|
|
21
|
-
throw new
|
|
33
|
+
throw new InvalidAmountError(amount)
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
|
|
@@ -27,7 +39,7 @@ export function validateNotBothAmounts(
|
|
|
27
39
|
amountOut?: number,
|
|
28
40
|
): void {
|
|
29
41
|
if (amountIn !== undefined && amountOut !== undefined) {
|
|
30
|
-
throw new
|
|
42
|
+
throw new ConflictingAmountsError()
|
|
31
43
|
}
|
|
32
44
|
}
|
|
33
45
|
|
|
@@ -36,21 +48,19 @@ export function validateNotSameAsset(assetIn: Asset, assetOut: Asset): void {
|
|
|
36
48
|
assetIn.metadata.symbol.toLowerCase() ===
|
|
37
49
|
assetOut.metadata.symbol.toLowerCase()
|
|
38
50
|
) {
|
|
39
|
-
throw new
|
|
51
|
+
throw new SameAssetError(assetIn.metadata.symbol)
|
|
40
52
|
}
|
|
41
53
|
}
|
|
42
54
|
|
|
43
55
|
export function validateNotZeroAddress(address: Address, label: string): void {
|
|
44
56
|
if (address === ZERO_ADDRESS) {
|
|
45
|
-
throw new
|
|
57
|
+
throw new ZeroAddressError(label, address)
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
|
|
49
61
|
export function validateSlippage(slippage: number, maxSlippage: number): void {
|
|
50
62
|
if (slippage < 0 || slippage > maxSlippage) {
|
|
51
|
-
throw new
|
|
52
|
-
`Slippage ${slippage} exceeds allowed range [0, ${maxSlippage * 100}%]`,
|
|
53
|
-
)
|
|
63
|
+
throw new SlippageOutOfRangeError(slippage, maxSlippage)
|
|
54
64
|
}
|
|
55
65
|
}
|
|
56
66
|
|
|
@@ -59,20 +69,37 @@ export function validateChainSupported(
|
|
|
59
69
|
supportedChainIds: readonly number[],
|
|
60
70
|
): void {
|
|
61
71
|
if (!supportedChainIds.includes(chainId)) {
|
|
62
|
-
throw new
|
|
63
|
-
`Chain ${chainId} is not supported. Supported chains: ${supportedChainIds.join(', ')}`,
|
|
64
|
-
)
|
|
72
|
+
throw new ChainNotSupportedError({ chainId, supportedChainIds })
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Guard for `BalanceFetchOptions` — verifies a caller-supplied `chainIds` filter is non-empty and each id is a member of `chainManager.getSupportedChains()`. No-op when `chainIds` is omitted.
|
|
78
|
+
* @throws InvalidParamsError when `chainIds` is `[]`.
|
|
79
|
+
* @throws ChainNotSupportedError when any id is not configured on the manager.
|
|
80
|
+
*/
|
|
81
|
+
export function validateBalanceFetchOptions(
|
|
82
|
+
options: BalanceFetchOptions | undefined,
|
|
83
|
+
chainManager: ChainManager,
|
|
84
|
+
): void {
|
|
85
|
+
if (options?.chainIds === undefined) return
|
|
86
|
+
if (options.chainIds.length === 0) {
|
|
87
|
+
throw new InvalidParamsError({
|
|
88
|
+
param: 'chainIds',
|
|
89
|
+
expected: 'SupportedChainId[] (non-empty)',
|
|
90
|
+
received: '[]',
|
|
91
|
+
})
|
|
92
|
+
}
|
|
93
|
+
const supported = chainManager.getSupportedChains()
|
|
94
|
+
for (const id of options.chainIds) validateChainSupported(id, supported)
|
|
95
|
+
}
|
|
96
|
+
|
|
68
97
|
export function validateAssetOnChain(
|
|
69
98
|
asset: Asset,
|
|
70
99
|
chainId: SupportedChainId,
|
|
71
100
|
): void {
|
|
72
101
|
if (!isAssetSupportedOnChain(asset, chainId)) {
|
|
73
|
-
throw new
|
|
74
|
-
`Asset ${asset.metadata.symbol} not supported on chain ${chainId}`,
|
|
75
|
-
)
|
|
102
|
+
throw new AssetNotSupportedOnChainError(asset.metadata.symbol, chainId)
|
|
76
103
|
}
|
|
77
104
|
}
|
|
78
105
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TransactionReceipt } from 'viem'
|
|
2
|
+
|
|
3
|
+
import { ActionsError } from '@/core/error/errors.js'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Error for a transaction that was included on-chain but reverted
|
|
7
|
+
* @description Thrown when a transaction makes it into a block (i.e. has a
|
|
8
|
+
* confirmed receipt) yet the EVM execution failed. The full
|
|
9
|
+
* {@link TransactionReceipt | transaction receipt} is attached for
|
|
10
|
+
* post-mortem analysis (status, logs, gas usage, etc.).
|
|
11
|
+
*/
|
|
12
|
+
export class TransactionConfirmedButRevertedError extends ActionsError {
|
|
13
|
+
override name = 'TransactionConfirmedButRevertedError' as const
|
|
14
|
+
/** Full receipt returned by the node for the reverted transaction */
|
|
15
|
+
receipt: TransactionReceipt
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create an instance of TransactionConfirmedButRevertedError
|
|
19
|
+
* @param message - Human-readable description of the failure
|
|
20
|
+
* @param receipt - Confirmed transaction receipt indicating a revert
|
|
21
|
+
*/
|
|
22
|
+
constructor(message: string, receipt: TransactionReceipt) {
|
|
23
|
+
if (!message || typeof message !== 'string') {
|
|
24
|
+
throw new Error('"message" must be a nonempty string.')
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
super(message, { metaMessages: [`txHash: ${receipt.transactionHash}`] })
|
|
28
|
+
this.receipt = receipt
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -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
|
/**
|