@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
|
@@ -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,31 @@ export abstract class Wallet {
|
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
88
|
+
* Check whether a wallet namespace (`lend`, `swap`) is configured on this
|
|
89
|
+
* wallet. Useful for callers that branch on capability instead of catching
|
|
90
|
+
* a `TypeError` from `wallet.lend!.openPosition(...)` later. Returns `false`
|
|
91
|
+
* when the namespace is undefined (no providers were registered for it).
|
|
92
|
+
* @param namespace - Wallet namespace name to probe.
|
|
93
|
+
* @returns `true` when the namespace is configured.
|
|
91
94
|
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
})
|
|
96
|
-
const ethBalancePromise = fetchETHBalance(this.chainManager, this.address)
|
|
95
|
+
has(namespace: 'lend' | 'swap'): boolean {
|
|
96
|
+
return this[namespace] !== undefined
|
|
97
|
+
}
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
/**
|
|
100
|
+
* Get asset balances across the requested chains (or all supported chains).
|
|
101
|
+
* @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.
|
|
102
|
+
* @param options - Optional `chainIds` filter
|
|
103
|
+
* @returns Promise resolving to array of token balances with chain breakdown
|
|
104
|
+
*/
|
|
105
|
+
async getBalance(options?: BalanceFetchOptions): Promise<TokenBalance[]> {
|
|
106
|
+
validateBalanceFetchOptions(options, this.chainManager)
|
|
107
|
+
return Promise.all([
|
|
108
|
+
fetchETHBalance(this.chainManager, this.address, options),
|
|
109
|
+
...this.supportedAssets.map((asset) =>
|
|
110
|
+
fetchERC20Balance(this.chainManager, this.address, asset, options),
|
|
111
|
+
),
|
|
112
|
+
])
|
|
99
113
|
}
|
|
100
114
|
|
|
101
115
|
/**
|
|
@@ -163,7 +177,7 @@ export abstract class Wallet {
|
|
|
163
177
|
* @returns Promise resolving to the transaction hash
|
|
164
178
|
*/
|
|
165
179
|
abstract sendBatch(
|
|
166
|
-
transactionData: TransactionData[],
|
|
180
|
+
transactionData: readonly TransactionData[],
|
|
167
181
|
chainId: SupportedChainId,
|
|
168
182
|
): Promise<BatchTransactionReturnType>
|
|
169
183
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Address, LocalAccount, WalletClient } from 'viem'
|
|
2
2
|
|
|
3
|
+
import type { LendProvider } from '@/actions/lend/core/LendProvider.js'
|
|
4
|
+
import type { SwapProvider } from '@/actions/swap/core/SwapProvider.js'
|
|
3
5
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
4
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
5
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
7
7
|
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
8
8
|
import type { Asset } from '@/types/asset.js'
|
|
9
9
|
import type { TransactionData } from '@/types/lend/index.js'
|
|
@@ -44,7 +44,7 @@ export class TestWallet extends Wallet {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
async sendBatch(
|
|
47
|
-
_transactionData: TransactionData[],
|
|
47
|
+
_transactionData: readonly TransactionData[],
|
|
48
48
|
_chainId: SupportedChainId,
|
|
49
49
|
): Promise<EOATransactionReceipt[]> {
|
|
50
50
|
return [] as unknown as EOATransactionReceipt[]
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { LocalAccount } from 'viem'
|
|
2
|
-
import { unichain } from 'viem/chains'
|
|
2
|
+
import { base, optimism, unichain } from 'viem/chains'
|
|
3
3
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
4
|
|
|
5
5
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
6
|
+
import type { WalletLendNamespace } from '@/actions/lend/namespaces/WalletLendNamespace.js'
|
|
6
7
|
import { ETH, USDC } from '@/constants/assets.js'
|
|
7
|
-
import
|
|
8
|
+
import {
|
|
9
|
+
ChainNotSupportedError,
|
|
10
|
+
InvalidParamsError,
|
|
11
|
+
} from '@/core/error/errors.js'
|
|
8
12
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
9
13
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
10
14
|
import { fetchERC20Balance, fetchETHBalance } from '@/services/tokenBalance.js'
|
|
@@ -36,7 +40,11 @@ describe('Wallet (base)', () => {
|
|
|
36
40
|
|
|
37
41
|
expect(result).toBeTruthy()
|
|
38
42
|
expect(fetchETHBalance).toHaveBeenCalledTimes(1)
|
|
39
|
-
expect(fetchETHBalance).toHaveBeenCalledWith(
|
|
43
|
+
expect(fetchETHBalance).toHaveBeenCalledWith(
|
|
44
|
+
chainManager,
|
|
45
|
+
address,
|
|
46
|
+
undefined,
|
|
47
|
+
)
|
|
40
48
|
// No supportedAssets configured, so no ERC20 balance fetches
|
|
41
49
|
expect(fetchERC20Balance).toHaveBeenCalledTimes(0)
|
|
42
50
|
})
|
|
@@ -67,6 +75,49 @@ describe('Wallet (base)', () => {
|
|
|
67
75
|
await expect(wallet.getBalance()).rejects.toThrow('rpc error')
|
|
68
76
|
})
|
|
69
77
|
|
|
78
|
+
it('getBalance forwards chainIds to fetchers when provided', async () => {
|
|
79
|
+
const multiCm = new MockChainManager({
|
|
80
|
+
supportedChains: [optimism.id, base.id, unichain.id],
|
|
81
|
+
}) as unknown as ChainManager
|
|
82
|
+
const wallet = new TestWallet(
|
|
83
|
+
multiCm,
|
|
84
|
+
address,
|
|
85
|
+
signer,
|
|
86
|
+
undefined,
|
|
87
|
+
undefined,
|
|
88
|
+
[ETH, USDC],
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
await wallet.getBalance({ chainIds: [base.id] })
|
|
92
|
+
|
|
93
|
+
expect(fetchETHBalance).toHaveBeenCalledWith(multiCm, address, {
|
|
94
|
+
chainIds: [base.id],
|
|
95
|
+
})
|
|
96
|
+
expect(fetchERC20Balance).toHaveBeenCalledTimes(2)
|
|
97
|
+
for (const call of vi.mocked(fetchERC20Balance).mock.calls) {
|
|
98
|
+
expect(call[3]).toEqual({ chainIds: [base.id] })
|
|
99
|
+
}
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
it('getBalance throws ChainNotSupportedError for chains outside the manager', async () => {
|
|
103
|
+
const wallet = new TestWallet(chainManager, address, signer)
|
|
104
|
+
|
|
105
|
+
await expect(
|
|
106
|
+
wallet.getBalance({ chainIds: [base.id] }),
|
|
107
|
+
).rejects.toBeInstanceOf(ChainNotSupportedError)
|
|
108
|
+
expect(fetchETHBalance).not.toHaveBeenCalled()
|
|
109
|
+
expect(fetchERC20Balance).not.toHaveBeenCalled()
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
it('getBalance throws InvalidParamsError when chainIds is empty', async () => {
|
|
113
|
+
const wallet = new TestWallet(chainManager, address, signer)
|
|
114
|
+
|
|
115
|
+
await expect(wallet.getBalance({ chainIds: [] })).rejects.toBeInstanceOf(
|
|
116
|
+
InvalidParamsError,
|
|
117
|
+
)
|
|
118
|
+
expect(fetchETHBalance).not.toHaveBeenCalled()
|
|
119
|
+
})
|
|
120
|
+
|
|
70
121
|
it('has lend namespace available for inheritance', () => {
|
|
71
122
|
const wallet = new TestWallet(chainManager, address, signer)
|
|
72
123
|
|
|
@@ -74,4 +125,19 @@ describe('Wallet (base)', () => {
|
|
|
74
125
|
expect(wallet.lend).toBeDefined()
|
|
75
126
|
expect(wallet.lend).toEqual({})
|
|
76
127
|
})
|
|
128
|
+
|
|
129
|
+
describe('has', () => {
|
|
130
|
+
it("returns false for a namespace that wasn't configured", () => {
|
|
131
|
+
const wallet = new TestWallet(chainManager, address, signer)
|
|
132
|
+
expect(wallet.has('lend')).toBe(false)
|
|
133
|
+
expect(wallet.has('swap')).toBe(false)
|
|
134
|
+
})
|
|
135
|
+
|
|
136
|
+
it('returns true once a namespace has been attached', () => {
|
|
137
|
+
const wallet = new TestWallet(chainManager, address, signer)
|
|
138
|
+
wallet.lend = {} as WalletLendNamespace
|
|
139
|
+
expect(wallet.has('lend')).toBe(true)
|
|
140
|
+
expect(wallet.has('swap')).toBe(false)
|
|
141
|
+
})
|
|
142
|
+
})
|
|
77
143
|
})
|
|
@@ -5,7 +5,7 @@ import type {
|
|
|
5
5
|
LocalAccount,
|
|
6
6
|
WalletClient,
|
|
7
7
|
} from 'viem'
|
|
8
|
-
import { createWalletClient } from 'viem'
|
|
8
|
+
import { createWalletClient, nonceManager } from 'viem'
|
|
9
9
|
|
|
10
10
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
11
11
|
import type { TransactionData } from '@/types/lend/index.js'
|
|
@@ -23,8 +23,10 @@ export abstract class EOAWallet extends Wallet {
|
|
|
23
23
|
/**
|
|
24
24
|
* Create a WalletClient for this EOA wallet.
|
|
25
25
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
26
|
+
* Attaches viem's default `nonceManager` to the signer so back-to-back
|
|
27
|
+
* `sendTransaction` calls receive sequential nonces without re-fetching
|
|
28
|
+
* `eth_getTransactionCount('pending')` per tx. This avoids races on
|
|
29
|
+
* load-balanced RPCs where pending state lags by one block.
|
|
28
30
|
* @param chainId - The chain ID to create the wallet client for
|
|
29
31
|
* @returns Promise resolving to a WalletClient configured for the specified chain
|
|
30
32
|
*/
|
|
@@ -39,8 +41,11 @@ export abstract class EOAWallet extends Wallet {
|
|
|
39
41
|
[]
|
|
40
42
|
>
|
|
41
43
|
> {
|
|
44
|
+
const account: LocalAccount = this.signer.nonceManager
|
|
45
|
+
? this.signer
|
|
46
|
+
: { ...this.signer, nonceManager }
|
|
42
47
|
return createWalletClient({
|
|
43
|
-
account
|
|
48
|
+
account,
|
|
44
49
|
chain: this.chainManager.getChain(chainId),
|
|
45
50
|
transport: this.chainManager.getTransportForChain(chainId),
|
|
46
51
|
})
|
|
@@ -70,25 +75,25 @@ export abstract class EOAWallet extends Wallet {
|
|
|
70
75
|
/**
|
|
71
76
|
* Send multiple transactions sequentially from this EOA wallet.
|
|
72
77
|
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
78
|
+
* Each transaction is awaited to inclusion (one confirmation) via `send()`
|
|
79
|
+
* before the next is signed. The `nonceManager` attached in `walletClient()`
|
|
80
|
+
* keeps nonces in sequence locally, so the wait does not need extra
|
|
81
|
+
* confirmations to guarantee nonce monotonicity.
|
|
82
|
+
*
|
|
83
|
+
* Note: this method assumes a sequencer-ordered chain (e.g. OP-stack L2s).
|
|
84
|
+
* On chains with deeper reorg risk, consider an additional confirmations
|
|
85
|
+
* pass at the call site.
|
|
75
86
|
* @param transactionData - Array of transactions to send
|
|
76
87
|
* @param chainId - Chain to send the transactions on
|
|
77
88
|
* @returns Promise resolving to array of transaction receipts (one per transaction)
|
|
78
89
|
*/
|
|
79
90
|
async sendBatch(
|
|
80
|
-
transactionData: TransactionData[],
|
|
91
|
+
transactionData: readonly TransactionData[],
|
|
81
92
|
chainId: SupportedChainId,
|
|
82
93
|
): Promise<EOATransactionReceipt[]> {
|
|
83
94
|
const receipts: EOATransactionReceipt[] = []
|
|
84
95
|
for (const tx of transactionData) {
|
|
85
96
|
const receipt = await this.send(tx, chainId)
|
|
86
|
-
const publicClient = this.chainManager.getPublicClient(chainId)
|
|
87
|
-
// wait an extra confirmation so give time for nonce to be updated
|
|
88
|
-
await publicClient.waitForTransactionReceipt({
|
|
89
|
-
hash: receipt.transactionHash,
|
|
90
|
-
confirmations: 2,
|
|
91
|
-
})
|
|
92
97
|
receipts.push(receipt)
|
|
93
98
|
}
|
|
94
99
|
return receipts
|
|
@@ -120,10 +120,44 @@ describe('EOAWallet', () => {
|
|
|
120
120
|
|
|
121
121
|
expect(createWalletClient).toHaveBeenCalledOnce()
|
|
122
122
|
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
123
|
-
expect(callArgs.account).
|
|
123
|
+
expect(callArgs.account).toMatchObject({
|
|
124
|
+
address: mockLocalAccount.address,
|
|
125
|
+
})
|
|
124
126
|
expect(callArgs.chain).toBe(unichain)
|
|
125
127
|
expect(walletClient).toBe(mockWalletClient)
|
|
126
128
|
})
|
|
129
|
+
|
|
130
|
+
it('attaches a nonce manager so back-to-back sends get sequential nonces', async () => {
|
|
131
|
+
await wallet.walletClient(unichain.id)
|
|
132
|
+
|
|
133
|
+
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
134
|
+
const account = callArgs.account as { nonceManager?: unknown }
|
|
135
|
+
expect(account.nonceManager).toMatchObject({
|
|
136
|
+
consume: expect.any(Function),
|
|
137
|
+
increment: expect.any(Function),
|
|
138
|
+
get: expect.any(Function),
|
|
139
|
+
reset: expect.any(Function),
|
|
140
|
+
})
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
it('respects a nonce manager already set on the signer', async () => {
|
|
144
|
+
const customNonceManager = {
|
|
145
|
+
consume: vi.fn(),
|
|
146
|
+
increment: vi.fn(),
|
|
147
|
+
get: vi.fn(),
|
|
148
|
+
reset: vi.fn(),
|
|
149
|
+
}
|
|
150
|
+
;(mockLocalAccount as LocalAccount).nonceManager =
|
|
151
|
+
customNonceManager as unknown as LocalAccount['nonceManager']
|
|
152
|
+
|
|
153
|
+
await wallet.walletClient(unichain.id)
|
|
154
|
+
|
|
155
|
+
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
156
|
+
const account = callArgs.account as { nonceManager?: unknown }
|
|
157
|
+
expect(account.nonceManager).toBe(customNonceManager)
|
|
158
|
+
|
|
159
|
+
delete (mockLocalAccount as LocalAccount).nonceManager
|
|
160
|
+
})
|
|
127
161
|
})
|
|
128
162
|
|
|
129
163
|
describe('send', () => {
|
|
@@ -191,13 +225,12 @@ describe('EOAWallet', () => {
|
|
|
191
225
|
.mockResolvedValueOnce(mockReceipt2.transactionHash)
|
|
192
226
|
.mockResolvedValueOnce(mockReceipt3.transactionHash)
|
|
193
227
|
|
|
228
|
+
// sendBatch performs exactly one inclusion wait per transaction (the
|
|
229
|
+
// wait inside `send()`). One mock per tx.
|
|
194
230
|
vi.mocked(mockPublicClient.waitForTransactionReceipt)
|
|
195
231
|
.mockResolvedValueOnce(mockReceipt)
|
|
196
|
-
.mockResolvedValueOnce(mockReceipt)
|
|
197
|
-
.mockResolvedValueOnce(mockReceipt2)
|
|
198
232
|
.mockResolvedValueOnce(mockReceipt2)
|
|
199
233
|
.mockResolvedValueOnce(mockReceipt3)
|
|
200
|
-
.mockResolvedValueOnce(mockReceipt3)
|
|
201
234
|
})
|
|
202
235
|
|
|
203
236
|
it('should send multiple transactions sequentially', async () => {
|
|
@@ -226,33 +259,19 @@ describe('EOAWallet', () => {
|
|
|
226
259
|
)
|
|
227
260
|
})
|
|
228
261
|
|
|
229
|
-
it('
|
|
262
|
+
it('waits for exactly one confirmation per transaction', async () => {
|
|
230
263
|
await wallet.sendBatch(
|
|
231
264
|
[mockTransactionData1, mockTransactionData2],
|
|
232
265
|
unichain.id,
|
|
233
266
|
)
|
|
234
267
|
|
|
235
|
-
//
|
|
236
|
-
// 1. Initial wait in send()
|
|
237
|
-
// 2. Extra confirmation wait (confirmations: 2) in sendBatch()
|
|
268
|
+
// One inclusion wait per tx, via `send()`.
|
|
238
269
|
expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenCalledTimes(
|
|
239
|
-
|
|
270
|
+
2,
|
|
240
271
|
)
|
|
241
|
-
|
|
242
|
-
// Check that extra confirmation wait was called with confirmations: 2
|
|
243
272
|
expect(
|
|
244
273
|
mockPublicClient.waitForTransactionReceipt,
|
|
245
|
-
).
|
|
246
|
-
hash: mockReceipt.transactionHash,
|
|
247
|
-
confirmations: 2,
|
|
248
|
-
})
|
|
249
|
-
|
|
250
|
-
expect(
|
|
251
|
-
mockPublicClient.waitForTransactionReceipt,
|
|
252
|
-
).toHaveBeenNthCalledWith(4, {
|
|
253
|
-
hash: mockReceipt2.transactionHash,
|
|
254
|
-
confirmations: 2,
|
|
255
|
-
})
|
|
274
|
+
).not.toHaveBeenCalledWith(expect.objectContaining({ confirmations: 2 }))
|
|
256
275
|
})
|
|
257
276
|
|
|
258
277
|
it('should get public client for each transaction', async () => {
|
|
@@ -261,8 +280,8 @@ describe('EOAWallet', () => {
|
|
|
261
280
|
unichain.id,
|
|
262
281
|
)
|
|
263
282
|
|
|
264
|
-
//
|
|
265
|
-
expect(mockChainManager.getPublicClient).toHaveBeenCalledTimes(
|
|
283
|
+
// One getPublicClient call per transaction (via send()).
|
|
284
|
+
expect(mockChainManager.getPublicClient).toHaveBeenCalledTimes(2)
|
|
266
285
|
expect(mockChainManager.getPublicClient).toHaveBeenCalledWith(unichain.id)
|
|
267
286
|
})
|
|
268
287
|
|
|
@@ -33,7 +33,7 @@ export abstract class SmartWallet extends Wallet {
|
|
|
33
33
|
* @param chainId
|
|
34
34
|
*/
|
|
35
35
|
abstract sendBatch(
|
|
36
|
-
transactionData: TransactionData[],
|
|
36
|
+
transactionData: readonly TransactionData[],
|
|
37
37
|
chainId: SupportedChainId,
|
|
38
38
|
): Promise<WaitForUserOperationReceiptReturnType>
|
|
39
39
|
|
|
@@ -11,13 +11,13 @@ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstrac
|
|
|
11
11
|
import { toCoinbaseSmartAccount } from 'viem/account-abstraction'
|
|
12
12
|
|
|
13
13
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
14
|
-
import { TransactionConfirmedButRevertedError } from '@/core/error/errors.js'
|
|
15
|
-
import { retryOnStaleRead } from '@/core/utils/retryOnStaleRead.js'
|
|
16
14
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
17
15
|
import type { Asset } from '@/types/asset.js'
|
|
18
16
|
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
19
17
|
import type { TransactionData } from '@/types/transaction.js'
|
|
20
18
|
import { parseAssetAmount } from '@/utils/assets.js'
|
|
19
|
+
import { TransactionConfirmedButRevertedError } from '@/wallet/core/error/errors.js'
|
|
20
|
+
import { retryOnStaleRead } from '@/wallet/core/utils/retryOnStaleRead.js'
|
|
21
21
|
import { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
22
22
|
import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
|
|
23
23
|
import {
|
|
@@ -218,7 +218,7 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
218
218
|
* @returns Promise resolving to the transaction hash
|
|
219
219
|
*/
|
|
220
220
|
async sendBatch(
|
|
221
|
-
transactionData: TransactionData[],
|
|
221
|
+
transactionData: readonly TransactionData[],
|
|
222
222
|
chainId: SupportedChainId,
|
|
223
223
|
): Promise<WaitForUserOperationReceiptReturnType> {
|
|
224
224
|
const account = await this.getCoinbaseSmartAccount(chainId)
|
|
@@ -9,7 +9,7 @@ import { baseSepolia, unichain } from 'viem/chains'
|
|
|
9
9
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
10
10
|
|
|
11
11
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
12
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
12
|
+
import { createMockLendProvider } from '@/actions/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 type { LendProviderConfig } from '@/types/actions.js'
|
package/src/wallet/node/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
getMockAuthorizationContext,
|
|
10
10
|
} from '@/__mocks__/MockPrivyClient.js'
|
|
11
11
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
12
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
12
|
+
import { createMockLendProvider } from '@/actions/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 { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts
CHANGED
|
@@ -98,7 +98,7 @@ describe('NodeHostedWalletProviderRegistry', () => {
|
|
|
98
98
|
const registry = new NodeHostedWalletProviderRegistry()
|
|
99
99
|
// @ts-expect-error: testing runtime error for unknown type
|
|
100
100
|
expect(() => registry.getFactory('unknown')).toThrow(
|
|
101
|
-
'
|
|
101
|
+
"A 'unknown' provider is not configured",
|
|
102
102
|
)
|
|
103
103
|
})
|
|
104
104
|
})
|
package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { LocalAccount } from 'viem'
|
|
|
3
3
|
import { unichain } from 'viem/chains'
|
|
4
4
|
import { describe, expect, it, vi } from 'vitest'
|
|
5
5
|
|
|
6
|
-
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
6
|
+
import { createMockLendProvider } from '@/actions/lend/__mocks__/MockLendProvider.js'
|
|
7
7
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
8
8
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
9
9
|
import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
@@ -115,7 +115,10 @@ describe('PrivyWallet', () => {
|
|
|
115
115
|
|
|
116
116
|
expect(createWalletClient).toHaveBeenCalledOnce()
|
|
117
117
|
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
118
|
-
expect(callArgs.account).
|
|
118
|
+
expect(callArgs.account).toMatchObject({
|
|
119
|
+
address: mockLocalAccount.address,
|
|
120
|
+
})
|
|
121
|
+
expect(callArgs.account).toHaveProperty('nonceManager')
|
|
119
122
|
expect(callArgs.chain).toBe(mockChainManager.getChain(unichain.id))
|
|
120
123
|
expect(walletClient).toBe(mockWalletClient)
|
|
121
124
|
})
|
|
@@ -97,7 +97,8 @@ describe('TurnkeyWallet', () => {
|
|
|
97
97
|
|
|
98
98
|
expect(createWalletClient).toHaveBeenCalledOnce()
|
|
99
99
|
const args = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
100
|
-
expect(args.account).
|
|
100
|
+
expect(args.account).toMatchObject({ address: mockLocalAccount.address })
|
|
101
|
+
expect(args.account).toHaveProperty('nonceManager')
|
|
101
102
|
expect(args.chain).toBe(mockChainManager.getChain(unichain.id))
|
|
102
103
|
expect(walletClient).toBe(mockWalletClient)
|
|
103
104
|
})
|