@eth-optimism/actions-sdk 0.3.0 → 0.5.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/__mocks__/MockAssets.d.ts +17 -2
- package/dist/__mocks__/MockAssets.d.ts.map +1 -1
- package/dist/__mocks__/MockAssets.js +49 -6
- package/dist/__mocks__/MockAssets.js.map +1 -1
- package/dist/__tests__/actions.test.js +1 -1
- package/dist/__tests__/actions.test.js.map +1 -1
- package/dist/actions.d.ts +17 -13
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +46 -27
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +215 -4
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +734 -11
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/providers.d.ts +6 -0
- package/dist/constants/providers.d.ts.map +1 -0
- package/dist/constants/providers.js +6 -0
- package/dist/constants/providers.js.map +1 -0
- package/dist/constants/supportedChains.d.ts +2 -2
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +12 -2
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/ens/EnsNamespace.d.ts +57 -0
- package/dist/ens/EnsNamespace.d.ts.map +1 -0
- package/dist/ens/EnsNamespace.js +158 -0
- package/dist/ens/EnsNamespace.js.map +1 -0
- package/dist/ens/EnsNamespace.spec.d.ts +2 -0
- package/dist/ens/EnsNamespace.spec.d.ts.map +1 -0
- package/dist/ens/EnsNamespace.spec.js +144 -0
- package/dist/ens/EnsNamespace.spec.js.map +1 -0
- package/dist/ens/errors.d.ts +24 -0
- package/dist/ens/errors.d.ts.map +1 -0
- package/dist/ens/errors.js +35 -0
- package/dist/ens/errors.js.map +1 -0
- package/dist/ens/index.d.ts +4 -0
- package/dist/ens/index.d.ts.map +1 -0
- package/dist/ens/index.js +4 -0
- package/dist/ens/index.js.map +1 -0
- package/dist/ens/types.d.ts +63 -0
- package/dist/ens/types.d.ts.map +1 -0
- package/dist/ens/types.js +14 -0
- package/dist/ens/types.js.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/lend/__mocks__/MockLendProvider.d.ts +1 -1
- package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -1
- package/dist/lend/__mocks__/MockLendProvider.js +7 -2
- package/dist/lend/__mocks__/MockLendProvider.js.map +1 -1
- package/dist/lend/core/LendProvider.d.ts +12 -8
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +15 -21
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/namespaces/BaseLendNamespace.d.ts +2 -6
- package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +7 -4
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts +1 -6
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.js +3 -6
- package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +14 -6
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -1
- package/dist/lend/providers/aave/addresses.d.ts +13 -39
- package/dist/lend/providers/aave/addresses.d.ts.map +1 -1
- package/dist/lend/providers/aave/addresses.js +65 -60
- package/dist/lend/providers/aave/addresses.js.map +1 -1
- package/dist/lend/providers/aave/sdk.d.ts +2 -2
- package/dist/lend/providers/aave/sdk.d.ts.map +1 -1
- package/dist/lend/providers/aave/sdk.js +6 -28
- package/dist/lend/providers/aave/sdk.js.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +1 -6
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.js +4 -13
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/api.test.js +52 -43
- package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +41 -42
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/api.d.ts +3 -7
- package/dist/lend/providers/morpho/api.d.ts.map +1 -1
- package/dist/lend/providers/morpho/api.js +2 -2
- package/dist/lend/providers/morpho/api.js.map +1 -1
- package/dist/lend/providers/morpho/contracts.d.ts +11 -10
- package/dist/lend/providers/morpho/contracts.d.ts.map +1 -1
- package/dist/lend/providers/morpho/contracts.js +43 -10
- package/dist/lend/providers/morpho/contracts.js.map +1 -1
- package/dist/lend/providers/morpho/sdk.d.ts +7 -2
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +67 -63
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/nodeActionsFactory.d.ts +1 -1
- package/dist/reactActionsFactory.d.ts +1 -1
- package/dist/services/ChainManager.d.ts +15 -8
- package/dist/services/ChainManager.d.ts.map +1 -1
- package/dist/services/ChainManager.js +9 -0
- package/dist/services/ChainManager.js.map +1 -1
- package/dist/services/__mocks__/MockChainManager.d.ts +5 -4
- package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -1
- package/dist/services/__mocks__/MockChainManager.js +5 -0
- package/dist/services/__mocks__/MockChainManager.js.map +1 -1
- package/dist/services/tokenBalance.d.ts +1 -1
- package/dist/services/tokenBalance.d.ts.map +1 -1
- package/dist/services/tokenBalance.js +31 -30
- package/dist/services/tokenBalance.js.map +1 -1
- package/dist/services/tokenBalance.spec.js +20 -24
- package/dist/services/tokenBalance.spec.js.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.d.ts +20 -8
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.js +52 -29
- package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -1
- package/dist/swap/core/SwapProvider.d.ts +105 -16
- package/dist/swap/core/SwapProvider.d.ts.map +1 -1
- package/dist/swap/core/SwapProvider.js +215 -37
- package/dist/swap/core/SwapProvider.js.map +1 -1
- package/dist/swap/core/__tests__/SwapProvider.test.js +115 -9
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -1
- package/dist/swap/core/markets.d.ts +47 -0
- package/dist/swap/core/markets.d.ts.map +1 -0
- package/dist/swap/core/markets.js +65 -0
- package/dist/swap/core/markets.js.map +1 -0
- package/dist/swap/index.d.ts +2 -0
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +1 -0
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +2 -2
- package/dist/swap/namespaces/ActionsSwapNamespace.js +2 -2
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts +50 -8
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -1
- package/dist/swap/namespaces/BaseSwapNamespace.js +144 -16
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -1
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +20 -7
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -1
- package/dist/swap/namespaces/WalletSwapNamespace.js +44 -15
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -1
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +150 -11
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -1
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +85 -8
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +10 -42
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js +81 -139
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -1
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +10 -9
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -1
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js +17 -17
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -1
- package/dist/swap/providers/uniswap/addresses.d.ts +5 -0
- package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -1
- package/dist/swap/providers/uniswap/addresses.js +1 -1
- package/dist/swap/providers/uniswap/addresses.js.map +1 -1
- package/dist/swap/providers/uniswap/encoding.d.ts +4 -4
- package/dist/swap/providers/uniswap/encoding.js +17 -17
- package/dist/swap/providers/uniswap/markets.d.ts +19 -0
- package/dist/swap/providers/uniswap/markets.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/markets.js +48 -0
- package/dist/swap/providers/uniswap/markets.js.map +1 -0
- package/dist/swap/providers/uniswap/types.d.ts +4 -3
- package/dist/swap/providers/uniswap/types.d.ts.map +1 -1
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts +50 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.js +140 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +255 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +166 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +420 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js +51 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts +14 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js +13 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js +173 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
- package/dist/swap/providers/velodrome/abis.d.ts +396 -0
- package/dist/swap/providers/velodrome/abis.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/abis.js +257 -0
- package/dist/swap/providers/velodrome/abis.js.map +1 -0
- package/dist/swap/providers/velodrome/addresses.d.ts +39 -0
- package/dist/swap/providers/velodrome/addresses.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/addresses.js +57 -0
- package/dist/swap/providers/velodrome/addresses.js.map +1 -0
- package/dist/swap/providers/velodrome/config.d.ts +22 -0
- package/dist/swap/providers/velodrome/config.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/config.js +29 -0
- package/dist/swap/providers/velodrome/config.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/helpers.d.ts +37 -0
- package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/helpers.js +60 -0
- package/dist/swap/providers/velodrome/encoding/helpers.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/index.d.ts +8 -0
- package/dist/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/index.js +5 -0
- package/dist/swap/providers/velodrome/encoding/index.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts +39 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.js +83 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +15 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.js +33 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts +40 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.js +80 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts +42 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.js +166 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
- package/dist/swap/providers/velodrome/markets.d.ts +21 -0
- package/dist/swap/providers/velodrome/markets.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/markets.js +69 -0
- package/dist/swap/providers/velodrome/markets.js.map +1 -0
- package/dist/swap/providers/velodrome/types.d.ts +31 -0
- package/dist/swap/providers/velodrome/types.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/types.js +2 -0
- package/dist/swap/providers/velodrome/types.js.map +1 -0
- package/dist/types/actions.d.ts +44 -9
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/asset.d.ts +7 -9
- package/dist/types/asset.d.ts.map +1 -1
- package/dist/types/chain.d.ts +2 -2
- package/dist/types/chain.d.ts.map +1 -1
- package/dist/types/lend/base.d.ts +6 -6
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/types/lend/base.js.map +1 -1
- package/dist/types/lend/contracts.d.ts +2 -1
- package/dist/types/lend/contracts.d.ts.map +1 -1
- package/dist/types/providers.d.ts +21 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +2 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/swap/base.d.ts +136 -35
- package/dist/types/swap/base.d.ts.map +1 -1
- package/dist/types/swap/base.js.map +1 -1
- package/dist/utils/approve.d.ts +82 -0
- package/dist/utils/approve.d.ts.map +1 -0
- package/dist/utils/{permit2.js → approve.js} +48 -14
- package/dist/utils/approve.js.map +1 -0
- package/dist/utils/approve.test.d.ts +2 -0
- package/dist/utils/approve.test.d.ts.map +1 -0
- package/dist/utils/{permit2.test.js → approve.test.js} +95 -2
- package/dist/utils/approve.test.js.map +1 -0
- package/dist/utils/assets.d.ts +6 -0
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +10 -0
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/ens.d.ts +25 -0
- package/dist/utils/ens.d.ts.map +1 -0
- package/dist/utils/ens.js +53 -0
- package/dist/utils/ens.js.map +1 -0
- package/dist/utils/ens.test.d.ts +2 -0
- package/dist/utils/ens.test.d.ts.map +1 -0
- package/dist/utils/ens.test.js +75 -0
- package/dist/utils/ens.test.js.map +1 -0
- package/dist/utils/validateAddresses.d.ts +32 -0
- package/dist/utils/validateAddresses.d.ts.map +1 -0
- package/dist/utils/validateAddresses.js +103 -0
- package/dist/utils/validateAddresses.js.map +1 -0
- package/dist/utils/validateAddresses.test.d.ts +2 -0
- package/dist/utils/validateAddresses.test.d.ts.map +1 -0
- package/dist/utils/validateAddresses.test.js +314 -0
- package/dist/utils/validateAddresses.test.js.map +1 -0
- package/dist/utils/validation.d.ts +5 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +10 -0
- package/dist/utils/validation.js.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +21 -9
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js +44 -15
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +4 -4
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +4 -16
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +6 -11
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +2 -9
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +6 -17
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +7 -6
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +10 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +2 -2
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +12 -4
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +3 -10
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -10
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +2 -4
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +6 -8
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +4 -4
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +2 -9
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +3 -10
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +3 -10
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +2 -4
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +11 -13
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +6 -6
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +5 -10
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +2 -6
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -10
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -10
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/package.json +3 -2
- package/src/__mocks__/MockAssets.ts +54 -6
- package/src/__tests__/actions.test.ts +1 -1
- package/src/actions.ts +73 -61
- package/src/constants/assets.ts +781 -10
- package/src/constants/providers.ts +5 -0
- package/src/constants/supportedChains.ts +22 -2
- package/src/ens/EnsNamespace.spec.ts +171 -0
- package/src/ens/EnsNamespace.ts +210 -0
- package/src/ens/errors.ts +45 -0
- package/src/ens/index.ts +12 -0
- package/src/ens/types.ts +76 -0
- package/src/index.ts +59 -8
- package/src/lend/__mocks__/MockLendProvider.ts +8 -3
- package/src/lend/core/LendProvider.ts +27 -28
- package/src/lend/namespaces/BaseLendNamespace.ts +2 -6
- package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +12 -5
- package/src/lend/providers/aave/AaveLendProvider.ts +3 -7
- package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +16 -7
- package/src/lend/providers/aave/addresses.ts +82 -64
- package/src/lend/providers/aave/sdk.ts +11 -36
- package/src/lend/providers/morpho/MorphoLendProvider.ts +4 -16
- package/src/lend/providers/morpho/__tests__/api.test.ts +65 -44
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +43 -43
- package/src/lend/providers/morpho/api.ts +7 -8
- package/src/lend/providers/morpho/contracts.ts +62 -13
- package/src/lend/providers/morpho/sdk.ts +85 -63
- package/src/services/ChainManager.ts +22 -21
- package/src/services/__mocks__/MockChainManager.ts +12 -7
- package/src/services/tokenBalance.spec.ts +20 -24
- package/src/services/tokenBalance.ts +39 -33
- package/src/swap/__mocks__/MockSwapProvider.ts +77 -42
- package/src/swap/core/SwapProvider.ts +309 -50
- package/src/swap/core/__tests__/SwapProvider.test.ts +151 -9
- package/src/swap/core/markets.ts +104 -0
- package/src/swap/index.ts +5 -0
- package/src/swap/namespaces/ActionsSwapNamespace.ts +2 -2
- package/src/swap/namespaces/BaseSwapNamespace.ts +215 -18
- package/src/swap/namespaces/WalletSwapNamespace.ts +61 -14
- package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +245 -14
- package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +103 -8
- package/src/swap/providers/uniswap/UniswapSwapProvider.ts +110 -195
- package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +12 -12
- package/src/swap/providers/uniswap/__tests__/sdk.test.ts +19 -20
- package/src/swap/providers/uniswap/addresses.ts +3 -1
- package/src/swap/providers/uniswap/encoding.ts +22 -22
- package/src/swap/providers/uniswap/markets.ts +84 -0
- package/src/swap/providers/uniswap/types.ts +4 -3
- package/src/swap/providers/velodrome/VelodromeSwapProvider.ts +226 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +341 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +202 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +507 -0
- package/src/swap/providers/velodrome/__tests__/encoding.cl.test.ts +69 -0
- package/src/swap/providers/velodrome/__tests__/encoding.helpers.ts +20 -0
- package/src/swap/providers/velodrome/__tests__/encoding.v2.test.ts +235 -0
- package/src/swap/providers/velodrome/abis.ts +264 -0
- package/src/swap/providers/velodrome/addresses.ts +107 -0
- package/src/swap/providers/velodrome/config.ts +46 -0
- package/src/swap/providers/velodrome/encoding/helpers.ts +82 -0
- package/src/swap/providers/velodrome/encoding/index.ts +7 -0
- package/src/swap/providers/velodrome/encoding/poolRouter.ts +124 -0
- package/src/swap/providers/velodrome/encoding/routers/approval.ts +45 -0
- package/src/swap/providers/velodrome/encoding/routers/cl.ts +156 -0
- package/src/swap/providers/velodrome/encoding/routers/v2.ts +267 -0
- package/src/swap/providers/velodrome/markets.ts +100 -0
- package/src/swap/providers/velodrome/types.ts +30 -0
- package/src/types/actions.ts +49 -9
- package/src/types/asset.ts +12 -9
- package/src/types/chain.ts +2 -2
- package/src/types/lend/base.ts +6 -6
- package/src/types/lend/contracts.ts +5 -1
- package/src/types/providers.ts +22 -0
- package/src/types/swap/base.ts +150 -36
- package/src/utils/{permit2.test.ts → approve.test.ts} +117 -1
- package/src/utils/{permit2.ts → approve.ts} +67 -14
- package/src/utils/assets.ts +14 -0
- package/src/utils/ens.test.ts +104 -0
- package/src/utils/ens.ts +85 -0
- package/src/utils/validateAddresses.test.ts +439 -0
- package/src/utils/validateAddresses.ts +153 -0
- package/src/utils/validation.ts +11 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +70 -16
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +8 -4
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +5 -17
- package/src/wallet/core/providers/hosted/types/index.ts +9 -11
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +5 -17
- package/src/wallet/core/wallets/abstract/Wallet.ts +18 -22
- package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +13 -1
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +21 -5
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +5 -17
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +0 -1
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +3 -10
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +8 -8
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +4 -4
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +3 -10
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +5 -17
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +5 -17
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +23 -10
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +6 -6
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +10 -18
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +2 -6
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -18
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -18
- package/dist/supported/tokens.d.ts +0 -25
- package/dist/supported/tokens.d.ts.map +0 -1
- package/dist/supported/tokens.js +0 -44
- package/dist/supported/tokens.js.map +0 -1
- package/dist/utils/permit2.d.ts +0 -46
- package/dist/utils/permit2.d.ts.map +0 -1
- package/dist/utils/permit2.js.map +0 -1
- package/dist/utils/permit2.test.d.ts +0 -2
- package/dist/utils/permit2.test.d.ts.map +0 -1
- package/dist/utils/permit2.test.js.map +0 -1
- package/src/supported/tokens.ts +0 -66
|
@@ -11,9 +11,21 @@ import type { WalletProvider } from '@/wallet/core/providers/WalletProvider.js'
|
|
|
11
11
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
12
12
|
import type { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Provider factory function for lazy initialization
|
|
16
|
+
*/
|
|
17
|
+
type WalletProviderFactory<
|
|
18
|
+
THostedProviderType extends string,
|
|
19
|
+
TToActionsMap extends Record<THostedProviderType, unknown>,
|
|
20
|
+
H extends HostedWalletProvider<THostedProviderType, TToActionsMap>,
|
|
21
|
+
S extends SmartWalletProvider,
|
|
22
|
+
> = () => Promise<WalletProvider<THostedProviderType, TToActionsMap, H, S>>
|
|
23
|
+
|
|
14
24
|
/**
|
|
15
25
|
* Wallet namespace that provides unified wallet operations
|
|
16
|
-
* @description Provides access to wallet functionality through a single provider interface
|
|
26
|
+
* @description Provides access to wallet functionality through a single provider interface.
|
|
27
|
+
* Supports lazy initialization — the wallet provider is created on first method call,
|
|
28
|
+
* enabling tree-shaking of unused wallet provider dependencies.
|
|
17
29
|
*/
|
|
18
30
|
export class WalletNamespace<
|
|
19
31
|
THostedProviderType extends string,
|
|
@@ -22,32 +34,70 @@ export class WalletNamespace<
|
|
|
22
34
|
HostedWalletProvider<THostedProviderType, TToActionsMap>,
|
|
23
35
|
S extends SmartWalletProvider = SmartWalletProvider,
|
|
24
36
|
> {
|
|
25
|
-
private
|
|
37
|
+
private _provider: WalletProvider<
|
|
38
|
+
THostedProviderType,
|
|
39
|
+
TToActionsMap,
|
|
40
|
+
H,
|
|
41
|
+
S
|
|
42
|
+
> | null = null
|
|
43
|
+
private _providerFactory: WalletProviderFactory<
|
|
44
|
+
THostedProviderType,
|
|
45
|
+
TToActionsMap,
|
|
46
|
+
H,
|
|
47
|
+
S
|
|
48
|
+
>
|
|
49
|
+
private _initPromise: Promise<
|
|
50
|
+
WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
51
|
+
> | null = null
|
|
26
52
|
|
|
27
53
|
constructor(
|
|
28
|
-
|
|
54
|
+
providerOrFactory:
|
|
55
|
+
| WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
56
|
+
| WalletProviderFactory<THostedProviderType, TToActionsMap, H, S>,
|
|
29
57
|
) {
|
|
30
|
-
|
|
58
|
+
if (typeof providerOrFactory === 'function') {
|
|
59
|
+
this._providerFactory = providerOrFactory
|
|
60
|
+
} else {
|
|
61
|
+
this._provider = providerOrFactory
|
|
62
|
+
this._providerFactory = () => Promise.resolve(providerOrFactory)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
private resolveProvider(): Promise<
|
|
67
|
+
WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
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
|
|
31
77
|
}
|
|
32
78
|
|
|
33
79
|
/**
|
|
34
80
|
* Get direct access to the hosted wallet provider
|
|
35
81
|
* @description Provides direct access to the underlying hosted wallet provider when
|
|
36
|
-
* advanced functionality beyond the unified interface is needed
|
|
37
|
-
*
|
|
82
|
+
* advanced functionality beyond the unified interface is needed.
|
|
83
|
+
* Lazily initializes the provider if not yet created.
|
|
84
|
+
* @returns Promise resolving to the configured hosted wallet provider instance
|
|
38
85
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
86
|
+
async hostedWalletProvider(): Promise<H> {
|
|
87
|
+
const provider = await this.resolveProvider()
|
|
88
|
+
return provider.hostedWalletProvider
|
|
41
89
|
}
|
|
42
90
|
|
|
43
91
|
/**
|
|
44
92
|
* Get direct access to the smart wallet provider
|
|
45
93
|
* @description Provides direct access to the underlying smart wallet provider when
|
|
46
|
-
* advanced functionality beyond the unified interface is needed
|
|
47
|
-
*
|
|
94
|
+
* advanced functionality beyond the unified interface is needed.
|
|
95
|
+
* Lazily initializes the provider if not yet created.
|
|
96
|
+
* @returns Promise resolving to the configured smart wallet provider instance
|
|
48
97
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
98
|
+
async smartWalletProvider(): Promise<S> {
|
|
99
|
+
const provider = await this.resolveProvider()
|
|
100
|
+
return provider.smartWalletProvider
|
|
51
101
|
}
|
|
52
102
|
|
|
53
103
|
/**
|
|
@@ -70,7 +120,8 @@ export class WalletNamespace<
|
|
|
70
120
|
async createSmartWallet(
|
|
71
121
|
params: CreateSmartWalletOptions,
|
|
72
122
|
): Promise<SmartWalletCreationResult<SmartWallet>> {
|
|
73
|
-
|
|
123
|
+
const provider = await this.resolveProvider()
|
|
124
|
+
return provider.createSmartWallet(params)
|
|
74
125
|
}
|
|
75
126
|
|
|
76
127
|
/**
|
|
@@ -85,7 +136,8 @@ export class WalletNamespace<
|
|
|
85
136
|
async createSigner(
|
|
86
137
|
params: TToActionsMap[THostedProviderType],
|
|
87
138
|
): Promise<LocalAccount> {
|
|
88
|
-
|
|
139
|
+
const provider = await this.resolveProvider()
|
|
140
|
+
return provider.createSigner(params)
|
|
89
141
|
}
|
|
90
142
|
|
|
91
143
|
/**
|
|
@@ -99,7 +151,8 @@ export class WalletNamespace<
|
|
|
99
151
|
async toActionsWallet(
|
|
100
152
|
params: TToActionsMap[THostedProviderType],
|
|
101
153
|
): Promise<Wallet> {
|
|
102
|
-
|
|
154
|
+
const provider = await this.resolveProvider()
|
|
155
|
+
return provider.hostedWalletToActionsWallet(params)
|
|
103
156
|
}
|
|
104
157
|
|
|
105
158
|
/**
|
|
@@ -118,6 +171,7 @@ export class WalletNamespace<
|
|
|
118
171
|
* @throws Error if neither walletAddress nor deploymentSigners provided
|
|
119
172
|
*/
|
|
120
173
|
async getSmartWallet(params: GetSmartWalletOptions) {
|
|
121
|
-
|
|
174
|
+
const provider = await this.resolveProvider()
|
|
175
|
+
return provider.getSmartWallet(params)
|
|
122
176
|
}
|
|
123
177
|
}
|
|
@@ -38,7 +38,7 @@ describe('WalletNamespace', () => {
|
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
describe('hostedWalletProvider', () => {
|
|
41
|
-
it('should provide access to hosted wallet provider', () => {
|
|
41
|
+
it('should provide access to hosted wallet provider', async () => {
|
|
42
42
|
const hostedWalletProvider = new PrivyHostedWalletProvider({
|
|
43
43
|
privyClient: mockPrivyClient,
|
|
44
44
|
chainManager: mockChainManager,
|
|
@@ -54,12 +54,14 @@ describe('WalletNamespace', () => {
|
|
|
54
54
|
)
|
|
55
55
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
56
56
|
|
|
57
|
-
expect(walletNamespace.hostedWalletProvider).toBe(
|
|
57
|
+
expect(await walletNamespace.hostedWalletProvider()).toBe(
|
|
58
|
+
hostedWalletProvider,
|
|
59
|
+
)
|
|
58
60
|
})
|
|
59
61
|
})
|
|
60
62
|
|
|
61
63
|
describe('smartWalletProvider', () => {
|
|
62
|
-
it('should provide access to smart wallet provider', () => {
|
|
64
|
+
it('should provide access to smart wallet provider', async () => {
|
|
63
65
|
const mockPrivyClient = createMockPrivyClient(
|
|
64
66
|
'test-app-id',
|
|
65
67
|
'test-app-secret',
|
|
@@ -79,7 +81,9 @@ describe('WalletNamespace', () => {
|
|
|
79
81
|
)
|
|
80
82
|
const walletNamespace = new WalletNamespace(walletProvider)
|
|
81
83
|
|
|
82
|
-
expect(walletNamespace.smartWalletProvider).toBe(
|
|
84
|
+
expect(await walletNamespace.smartWalletProvider()).toBe(
|
|
85
|
+
smartWalletProvider,
|
|
86
|
+
)
|
|
83
87
|
})
|
|
84
88
|
})
|
|
85
89
|
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
4
3
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
6
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
7
4
|
import type { Asset } from '@/types/asset.js'
|
|
5
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
8
6
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
9
7
|
|
|
10
8
|
/**
|
|
@@ -18,24 +16,14 @@ export abstract class HostedWalletProvider<
|
|
|
18
16
|
TOptionsMap extends Record<TType, unknown>,
|
|
19
17
|
> {
|
|
20
18
|
protected chainManager: ChainManager
|
|
21
|
-
protected lendProviders:
|
|
22
|
-
|
|
23
|
-
aave?: LendProvider<LendProviderConfig>
|
|
24
|
-
}
|
|
25
|
-
protected swapProviders: {
|
|
26
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
27
|
-
}
|
|
19
|
+
protected lendProviders: LendProviders
|
|
20
|
+
protected swapProviders: SwapProviders
|
|
28
21
|
protected supportedAssets?: Asset[]
|
|
29
22
|
|
|
30
23
|
protected constructor(
|
|
31
24
|
chainManager: ChainManager,
|
|
32
|
-
lendProviders?:
|
|
33
|
-
|
|
34
|
-
aave?: LendProvider<LendProviderConfig>
|
|
35
|
-
},
|
|
36
|
-
swapProviders?: {
|
|
37
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
38
|
-
},
|
|
25
|
+
lendProviders?: LendProviders,
|
|
26
|
+
swapProviders?: SwapProviders,
|
|
39
27
|
supportedAssets?: Asset[],
|
|
40
28
|
) {
|
|
41
29
|
this.chainManager = chainManager
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
2
1
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
3
|
-
import type {
|
|
4
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
2
|
+
import type { SwapSettings } from '@/types/actions.js'
|
|
5
3
|
import type { Asset } from '@/types/asset.js'
|
|
4
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
6
5
|
import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -13,14 +12,10 @@ import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstra
|
|
|
13
12
|
*/
|
|
14
13
|
export interface HostedProviderDeps {
|
|
15
14
|
chainManager: ChainManager
|
|
16
|
-
lendProviders?:
|
|
17
|
-
|
|
18
|
-
aave?: LendProvider<LendProviderConfig>
|
|
19
|
-
}
|
|
20
|
-
swapProviders?: {
|
|
21
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
22
|
-
}
|
|
15
|
+
lendProviders?: LendProviders
|
|
16
|
+
swapProviders?: SwapProviders
|
|
23
17
|
supportedAssets?: Asset[]
|
|
18
|
+
swapSettings?: SwapSettings
|
|
24
19
|
}
|
|
25
20
|
|
|
26
21
|
/**
|
|
@@ -56,7 +51,10 @@ export interface HostedProviderFactory<
|
|
|
56
51
|
> {
|
|
57
52
|
type: TType
|
|
58
53
|
validateOptions(options: unknown): options is TOptions
|
|
59
|
-
create(
|
|
54
|
+
create(
|
|
55
|
+
deps: HostedProviderDeps,
|
|
56
|
+
options: TOptions,
|
|
57
|
+
): TInstance | Promise<TInstance>
|
|
60
58
|
}
|
|
61
59
|
|
|
62
60
|
/**
|
|
@@ -2,11 +2,9 @@ import type { Address, Hex, LocalAccount } from 'viem'
|
|
|
2
2
|
import { keccak256, slice, toHex } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
6
5
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
8
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
9
6
|
import type { Asset } from '@/types/asset.js'
|
|
7
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
10
8
|
import { SmartWalletProvider } from '@/wallet/core/providers/smart/abstract/SmartWalletProvider.js'
|
|
11
9
|
import type { SmartWalletCreationResult } from '@/wallet/core/providers/smart/abstract/types/index.js'
|
|
12
10
|
import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
|
|
@@ -28,14 +26,9 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
28
26
|
/** Manages supported blockchain networks */
|
|
29
27
|
private chainManager: ChainManager
|
|
30
28
|
/** Providers for lending market operations */
|
|
31
|
-
private lendProviders:
|
|
32
|
-
morpho?: LendProvider<LendProviderConfig>
|
|
33
|
-
aave?: LendProvider<LendProviderConfig>
|
|
34
|
-
}
|
|
29
|
+
private lendProviders: LendProviders
|
|
35
30
|
/** Providers for swap operations */
|
|
36
|
-
private swapProviders:
|
|
37
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
38
|
-
}
|
|
31
|
+
private swapProviders: SwapProviders
|
|
39
32
|
/** Supported assets for this wallet provider */
|
|
40
33
|
private supportedAssets?: Asset[]
|
|
41
34
|
/** Optional 16-byte attribution suffix appended to callData */
|
|
@@ -51,13 +44,8 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
51
44
|
*/
|
|
52
45
|
constructor(
|
|
53
46
|
chainManager: ChainManager,
|
|
54
|
-
lendProviders?:
|
|
55
|
-
|
|
56
|
-
aave?: LendProvider<LendProviderConfig>
|
|
57
|
-
},
|
|
58
|
-
swapProviders?: {
|
|
59
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
60
|
-
},
|
|
47
|
+
lendProviders?: LendProviders,
|
|
48
|
+
swapProviders?: SwapProviders,
|
|
61
49
|
supportedAssets?: Asset[],
|
|
62
50
|
attributionSuffix?: string,
|
|
63
51
|
) {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { Address, LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
3
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
4
|
-
import
|
|
4
|
+
import { EnsNamespace } from '@/ens/index.js'
|
|
5
5
|
import { WalletLendNamespace } from '@/lend/namespaces/WalletLendNamespace.js'
|
|
6
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
7
|
import { fetchERC20Balance, fetchETHBalance } from '@/services/tokenBalance.js'
|
|
8
|
-
import { SUPPORTED_TOKENS } from '@/supported/tokens.js'
|
|
9
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
10
8
|
import { WalletSwapNamespace } from '@/swap/namespaces/WalletSwapNamespace.js'
|
|
11
|
-
import type {
|
|
9
|
+
import type { SwapSettings } from '@/types/actions.js'
|
|
12
10
|
import type { Asset, TokenBalance } from '@/types/asset.js'
|
|
11
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
13
12
|
import type { TransactionData } from '@/types/transaction.js'
|
|
14
13
|
import type {
|
|
15
14
|
BatchTransactionReturnType,
|
|
@@ -25,16 +24,11 @@ export abstract class Wallet {
|
|
|
25
24
|
/** Lend namespace with all lending operations */
|
|
26
25
|
lend?: WalletLendNamespace
|
|
27
26
|
/** Providers for lending market operations */
|
|
28
|
-
protected lendProviders:
|
|
29
|
-
morpho?: LendProvider<LendProviderConfig>
|
|
30
|
-
aave?: LendProvider<LendProviderConfig>
|
|
31
|
-
}
|
|
27
|
+
protected lendProviders: LendProviders
|
|
32
28
|
/** Swap namespace with all swap operations */
|
|
33
29
|
swap?: WalletSwapNamespace
|
|
34
30
|
/** Providers for swap operations */
|
|
35
|
-
protected swapProviders:
|
|
36
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
37
|
-
}
|
|
31
|
+
protected swapProviders: SwapProviders
|
|
38
32
|
/** Manages supported blockchain networks and RPC clients */
|
|
39
33
|
protected chainManager: ChainManager
|
|
40
34
|
/** List of supported assets for this wallet */
|
|
@@ -62,28 +56,30 @@ export abstract class Wallet {
|
|
|
62
56
|
* @param chainManager - Chain manager for the wallet
|
|
63
57
|
* @param lendProviders - Lend providers for the wallet
|
|
64
58
|
* @param swapProviders - Swap providers for the wallet
|
|
65
|
-
* @param supportedAssets - List of supported assets (defaults to
|
|
59
|
+
* @param supportedAssets - List of supported assets (defaults to empty)
|
|
66
60
|
*/
|
|
67
61
|
protected constructor(
|
|
68
62
|
chainManager: ChainManager,
|
|
69
|
-
lendProviders?:
|
|
70
|
-
|
|
71
|
-
aave?: LendProvider<LendProviderConfig>
|
|
72
|
-
},
|
|
73
|
-
swapProviders?: {
|
|
74
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
75
|
-
},
|
|
63
|
+
lendProviders?: LendProviders,
|
|
64
|
+
swapProviders?: SwapProviders,
|
|
76
65
|
supportedAssets?: Asset[],
|
|
66
|
+
swapSettings?: SwapSettings,
|
|
77
67
|
) {
|
|
78
68
|
this.chainManager = chainManager
|
|
79
69
|
this.lendProviders = lendProviders || {}
|
|
80
70
|
this.swapProviders = swapProviders || {}
|
|
81
|
-
this.supportedAssets = supportedAssets ||
|
|
71
|
+
this.supportedAssets = supportedAssets || []
|
|
82
72
|
if (this.lendProviders.morpho || this.lendProviders.aave) {
|
|
83
73
|
this.lend = new WalletLendNamespace(this.lendProviders, this)
|
|
84
74
|
}
|
|
85
|
-
if (this.swapProviders.
|
|
86
|
-
|
|
75
|
+
if (Object.values(this.swapProviders).some(Boolean)) {
|
|
76
|
+
const ens = new EnsNamespace(this.chainManager)
|
|
77
|
+
this.swap = new WalletSwapNamespace(
|
|
78
|
+
this.swapProviders,
|
|
79
|
+
this,
|
|
80
|
+
(r) => (r ? ens.getAddress(r) : Promise.resolve(undefined)),
|
|
81
|
+
swapSettings,
|
|
82
|
+
)
|
|
87
83
|
}
|
|
88
84
|
}
|
|
89
85
|
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Address, LocalAccount, WalletClient } from 'viem'
|
|
2
2
|
|
|
3
3
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
4
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
4
5
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
+
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
7
|
+
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
8
|
+
import type { Asset } from '@/types/asset.js'
|
|
5
9
|
import type { TransactionData } from '@/types/lend/index.js'
|
|
6
10
|
import type { EOATransactionReceipt } from '@/wallet/core/wallets/abstract/types/index.js'
|
|
7
11
|
import { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
@@ -14,8 +18,16 @@ export class TestWallet extends Wallet {
|
|
|
14
18
|
chainManager: ChainManager,
|
|
15
19
|
address: Address,
|
|
16
20
|
signer: LocalAccount,
|
|
21
|
+
lendProviders?: {
|
|
22
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
23
|
+
aave?: LendProvider<LendProviderConfig>
|
|
24
|
+
},
|
|
25
|
+
swapProviders?: {
|
|
26
|
+
uniswap?: SwapProvider<SwapProviderConfig>
|
|
27
|
+
},
|
|
28
|
+
supportedAssets?: Asset[],
|
|
17
29
|
) {
|
|
18
|
-
super(chainManager)
|
|
30
|
+
super(chainManager, lendProviders, swapProviders, supportedAssets)
|
|
19
31
|
this.address = address
|
|
20
32
|
this.signer = signer
|
|
21
33
|
}
|
|
@@ -3,11 +3,11 @@ import { 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 { ETH, USDC } from '@/constants/assets.js'
|
|
6
7
|
import type { WalletLendNamespace } from '@/lend/namespaces/WalletLendNamespace.js'
|
|
7
8
|
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
8
9
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
9
10
|
import { fetchERC20Balance, fetchETHBalance } from '@/services/tokenBalance.js'
|
|
10
|
-
import { SUPPORTED_TOKENS } from '@/supported/tokens.js'
|
|
11
11
|
import { TestWallet } from '@/wallet/core/wallets/abstract/__mocks__/TestWallet.js'
|
|
12
12
|
|
|
13
13
|
vi.mock('@/services/tokenBalance.js', async () => {
|
|
@@ -29,7 +29,7 @@ describe('Wallet (base)', () => {
|
|
|
29
29
|
vi.clearAllMocks()
|
|
30
30
|
})
|
|
31
31
|
|
|
32
|
-
it('getBalance
|
|
32
|
+
it('getBalance returns only ETH when no supportedAssets configured', async () => {
|
|
33
33
|
const wallet = new TestWallet(chainManager, address, signer)
|
|
34
34
|
|
|
35
35
|
const result = await wallet.getBalance()
|
|
@@ -37,10 +37,26 @@ describe('Wallet (base)', () => {
|
|
|
37
37
|
expect(result).toBeTruthy()
|
|
38
38
|
expect(fetchETHBalance).toHaveBeenCalledTimes(1)
|
|
39
39
|
expect(fetchETHBalance).toHaveBeenCalledWith(chainManager, address)
|
|
40
|
-
//
|
|
41
|
-
expect(fetchERC20Balance).toHaveBeenCalledTimes(
|
|
42
|
-
|
|
40
|
+
// No supportedAssets configured, so no ERC20 balance fetches
|
|
41
|
+
expect(fetchERC20Balance).toHaveBeenCalledTimes(0)
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('getBalance fetches ERC20 balances for explicitly configured assets', async () => {
|
|
45
|
+
const wallet = new TestWallet(
|
|
46
|
+
chainManager,
|
|
47
|
+
address,
|
|
48
|
+
signer,
|
|
49
|
+
undefined,
|
|
50
|
+
undefined,
|
|
51
|
+
[ETH, USDC],
|
|
43
52
|
)
|
|
53
|
+
|
|
54
|
+
const result = await wallet.getBalance()
|
|
55
|
+
|
|
56
|
+
expect(result).toBeTruthy()
|
|
57
|
+
expect(fetchETHBalance).toHaveBeenCalledTimes(1)
|
|
58
|
+
// Should call fetchERC20Balance for each configured asset
|
|
59
|
+
expect(fetchERC20Balance).toHaveBeenCalledTimes(2)
|
|
44
60
|
})
|
|
45
61
|
|
|
46
62
|
it('getBalance propagates errors from underlying fetchers', async () => {
|
|
@@ -13,11 +13,9 @@ import { toCoinbaseSmartAccount } from 'viem/account-abstraction'
|
|
|
13
13
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
14
14
|
import { TransactionConfirmedButRevertedError } from '@/core/error/errors.js'
|
|
15
15
|
import { retryOnStaleRead } from '@/core/utils/retryOnStaleRead.js'
|
|
16
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
17
16
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
18
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
19
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
20
17
|
import type { Asset } from '@/types/asset.js'
|
|
18
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
21
19
|
import type { TransactionData } from '@/types/transaction.js'
|
|
22
20
|
import { parseAssetAmount } from '@/utils/assets.js'
|
|
23
21
|
import { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
@@ -69,13 +67,8 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
69
67
|
signers: Signer[],
|
|
70
68
|
signer: LocalAccount,
|
|
71
69
|
chainManager: ChainManager,
|
|
72
|
-
lendProviders?:
|
|
73
|
-
|
|
74
|
-
aave?: LendProvider<LendProviderConfig>
|
|
75
|
-
},
|
|
76
|
-
swapProviders?: {
|
|
77
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
78
|
-
},
|
|
70
|
+
lendProviders?: LendProviders,
|
|
71
|
+
swapProviders?: SwapProviders,
|
|
79
72
|
supportedAssets?: Asset[],
|
|
80
73
|
deploymentAddress?: Address,
|
|
81
74
|
nonce?: bigint,
|
|
@@ -122,13 +115,8 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
122
115
|
signer: LocalAccount
|
|
123
116
|
chainManager: ChainManager
|
|
124
117
|
signers?: Signer[]
|
|
125
|
-
lendProviders?:
|
|
126
|
-
|
|
127
|
-
aave?: LendProvider<LendProviderConfig>
|
|
128
|
-
}
|
|
129
|
-
swapProviders?: {
|
|
130
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
131
|
-
}
|
|
118
|
+
lendProviders?: LendProviders
|
|
119
|
+
swapProviders?: SwapProviders
|
|
132
120
|
supportedAssets?: Asset[]
|
|
133
121
|
deploymentAddress?: Address
|
|
134
122
|
nonce?: bigint
|
|
@@ -12,7 +12,6 @@ import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
|
12
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
|
-
import { SUPPORTED_TOKENS } from '@/supported/tokens.js'
|
|
16
15
|
import type { LendProviderConfig } from '@/types/actions.js'
|
|
17
16
|
import type { LendProvider, TransactionData } from '@/types/lend/index.js'
|
|
18
17
|
import {
|
|
@@ -2,11 +2,9 @@ import type { AuthorizationContext, PrivyClient } from '@privy-io/node'
|
|
|
2
2
|
import type { LocalAccount } from 'viem'
|
|
3
3
|
import { getAddress } from 'viem'
|
|
4
4
|
|
|
5
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
6
5
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
8
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
9
6
|
import type { Asset } from '@/types/asset.js'
|
|
7
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
10
8
|
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
11
9
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
12
10
|
import type {
|
|
@@ -43,13 +41,8 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
|
|
|
43
41
|
constructor(params: {
|
|
44
42
|
privyClient: PrivyClient
|
|
45
43
|
chainManager: ChainManager
|
|
46
|
-
lendProviders?:
|
|
47
|
-
|
|
48
|
-
aave?: LendProvider<LendProviderConfig>
|
|
49
|
-
}
|
|
50
|
-
swapProviders?: {
|
|
51
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
52
|
-
}
|
|
44
|
+
lendProviders?: LendProviders
|
|
45
|
+
swapProviders?: SwapProviders
|
|
53
46
|
supportedAssets?: Asset[]
|
|
54
47
|
authorizationContext?: AuthorizationContext
|
|
55
48
|
}) {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
2
|
-
import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
3
|
-
import { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
4
2
|
import type {
|
|
5
3
|
NodeHostedProviderInstanceMap,
|
|
6
4
|
NodeOptionsMap,
|
|
@@ -11,10 +9,8 @@ import type {
|
|
|
11
9
|
* Node hosted wallet provider registry
|
|
12
10
|
* @description
|
|
13
11
|
* Environment-scoped registry that binds Node/server provider keys to their
|
|
14
|
-
* factory implementations.
|
|
15
|
-
*
|
|
16
|
-
* pre-registers 'privy' and 'turnkey' providers and can be extended with
|
|
17
|
-
* additional providers via `register`.
|
|
12
|
+
* factory implementations. Provider code is loaded lazily via dynamic import()
|
|
13
|
+
* so that unused wallet SDKs are not included in the bundle.
|
|
18
14
|
*/
|
|
19
15
|
export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegistry<
|
|
20
16
|
NodeHostedProviderInstanceMap,
|
|
@@ -28,10 +24,12 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
|
|
|
28
24
|
validateOptions(options): options is NodeOptionsMap['privy'] {
|
|
29
25
|
return Boolean((options as NodeOptionsMap['privy'])?.privyClient)
|
|
30
26
|
},
|
|
31
|
-
create(
|
|
27
|
+
async create(
|
|
32
28
|
{ chainManager, lendProviders, swapProviders, supportedAssets },
|
|
33
29
|
options,
|
|
34
30
|
) {
|
|
31
|
+
const { PrivyHostedWalletProvider } =
|
|
32
|
+
await import('@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js')
|
|
35
33
|
return new PrivyHostedWalletProvider({
|
|
36
34
|
privyClient: options.privyClient,
|
|
37
35
|
chainManager,
|
|
@@ -49,10 +47,12 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
|
|
|
49
47
|
const o = options as NodeOptionsMap['turnkey']
|
|
50
48
|
return Boolean(o?.client)
|
|
51
49
|
},
|
|
52
|
-
create(
|
|
50
|
+
async create(
|
|
53
51
|
{ chainManager, lendProviders, swapProviders, supportedAssets },
|
|
54
52
|
options,
|
|
55
53
|
) {
|
|
54
|
+
const { TurnkeyHostedWalletProvider } =
|
|
55
|
+
await import('@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js')
|
|
56
56
|
return new TurnkeyHostedWalletProvider(
|
|
57
57
|
options.client,
|
|
58
58
|
chainManager,
|
package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts
CHANGED
|
@@ -54,11 +54,11 @@ describe('NodeHostedWalletProviderRegistry', () => {
|
|
|
54
54
|
).toBe(false)
|
|
55
55
|
})
|
|
56
56
|
|
|
57
|
-
it('creates a PrivyHostedWalletProvider instance', () => {
|
|
57
|
+
it('creates a PrivyHostedWalletProvider instance', async () => {
|
|
58
58
|
const registry = new NodeHostedWalletProviderRegistry()
|
|
59
59
|
const factory = registry.getFactory('privy')
|
|
60
60
|
|
|
61
|
-
const provider = factory.create({ chainManager: mockChainManager }, {
|
|
61
|
+
const provider = await factory.create({ chainManager: mockChainManager }, {
|
|
62
62
|
privyClient: mockPrivyClient,
|
|
63
63
|
authorizationContext: getMockAuthorizationContext(),
|
|
64
64
|
} as NodeOptionsMap['privy'])
|
|
@@ -80,11 +80,11 @@ describe('NodeHostedWalletProviderRegistry', () => {
|
|
|
80
80
|
expect(factory.validateOptions?.({})).toBe(false)
|
|
81
81
|
})
|
|
82
82
|
|
|
83
|
-
it('creates a TurnkeyHostedWalletProvider instance', () => {
|
|
83
|
+
it('creates a TurnkeyHostedWalletProvider instance', async () => {
|
|
84
84
|
const registry = new NodeHostedWalletProviderRegistry()
|
|
85
85
|
const factory = registry.getFactory('turnkey')
|
|
86
86
|
|
|
87
|
-
const provider = factory.create(
|
|
87
|
+
const provider = await factory.create(
|
|
88
88
|
{ chainManager: mockChainManager },
|
|
89
89
|
{
|
|
90
90
|
client: mockTurnkeyClient,
|
|
@@ -3,11 +3,9 @@ import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
|
|
|
3
3
|
import type { TurnkeyServerClient } from '@turnkey/sdk-server'
|
|
4
4
|
import type { LocalAccount } from 'viem'
|
|
5
5
|
|
|
6
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
7
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
8
|
-
import type { SwapProvider } from '@/swap/core/SwapProvider.js'
|
|
9
|
-
import type { LendProviderConfig, SwapProviderConfig } from '@/types/actions.js'
|
|
10
7
|
import type { Asset } from '@/types/asset.js'
|
|
8
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
11
9
|
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
12
10
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
13
11
|
import type { NodeToActionsOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
|
|
@@ -39,13 +37,8 @@ export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
|
|
|
39
37
|
| TurnkeyServerClient
|
|
40
38
|
| TurnkeySDKClientBase,
|
|
41
39
|
chainManager: ChainManager,
|
|
42
|
-
lendProviders?:
|
|
43
|
-
|
|
44
|
-
aave?: LendProvider<LendProviderConfig>
|
|
45
|
-
},
|
|
46
|
-
swapProviders?: {
|
|
47
|
-
uniswap?: SwapProvider<SwapProviderConfig>
|
|
48
|
-
},
|
|
40
|
+
lendProviders?: LendProviders,
|
|
41
|
+
swapProviders?: SwapProviders,
|
|
49
42
|
supportedAssets?: Asset[],
|
|
50
43
|
) {
|
|
51
44
|
super(chainManager, lendProviders, swapProviders, supportedAssets)
|