@eth-optimism/actions-sdk 0.2.0 → 0.4.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 -4
- package/dist/__mocks__/MockAssets.js.map +1 -1
- package/dist/__tests__/actions.test.js +1 -5
- package/dist/__tests__/actions.test.js.map +1 -1
- package/dist/actions.d.ts +23 -9
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +68 -36
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +217 -2
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +744 -6
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/contracts.d.ts +4 -0
- package/dist/constants/contracts.d.ts.map +1 -0
- package/dist/constants/contracts.js +3 -0
- package/dist/constants/contracts.js.map +1 -0
- 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/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- 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 -14
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +16 -31
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
- package/dist/lend/core/__tests__/LendProvider.test.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 -41
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/api.d.ts +3 -3
- 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 -54
- 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 +8 -8
- package/dist/services/ChainManager.d.ts.map +1 -1
- package/dist/services/ChainManager.js.map +1 -1
- package/dist/services/__mocks__/MockChainManager.d.ts +4 -4
- package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -1
- 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 +50 -0
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
- package/dist/swap/__mocks__/MockSwapProvider.js +161 -0
- package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
- package/dist/swap/core/SwapProvider.d.ts +145 -0
- package/dist/swap/core/SwapProvider.d.ts.map +1 -0
- package/dist/swap/core/SwapProvider.js +359 -0
- package/dist/swap/core/SwapProvider.js.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js +435 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
- 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 +9 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +9 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts +73 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js +181 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +34 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js +84 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +245 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +209 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +35 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js +148 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +258 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
- package/dist/swap/providers/uniswap/abis.d.ts +227 -0
- package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/abis.js +138 -0
- package/dist/swap/providers/uniswap/abis.js.map +1 -0
- package/dist/swap/providers/uniswap/addresses.d.ts +26 -0
- package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/addresses.js +81 -0
- package/dist/swap/providers/uniswap/addresses.js.map +1 -0
- package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
- package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/encoding.js +233 -0
- package/dist/swap/providers/uniswap/encoding.js.map +1 -0
- 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 +21 -0
- package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/types.js +2 -0
- package/dist/swap/providers/uniswap/types.js.map +1 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts +49 -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 +419 -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 +60 -11
- 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/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lend/base.d.ts +9 -19
- 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 +338 -0
- package/dist/types/swap/base.d.ts.map +1 -0
- package/dist/types/swap/base.js +4 -0
- package/dist/types/swap/base.js.map +1 -0
- package/dist/types/swap/index.d.ts +2 -0
- package/dist/types/swap/index.d.ts.map +1 -0
- package/dist/types/swap/index.js +2 -0
- package/dist/types/swap/index.js.map +1 -0
- package/dist/types/transaction.d.ts +14 -0
- package/dist/types/transaction.d.ts.map +1 -0
- package/dist/types/transaction.js +2 -0
- package/dist/types/transaction.js.map +1 -0
- package/dist/utils/approve.d.ts +82 -0
- package/dist/utils/approve.d.ts.map +1 -0
- package/dist/utils/approve.js +134 -0
- 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/approve.test.js +203 -0
- package/dist/utils/approve.test.js.map +1 -0
- package/dist/utils/assets.d.ts +10 -5
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +14 -11
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/assets.test.js +13 -1
- package/dist/utils/assets.test.js.map +1 -1
- 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 +12 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +44 -0
- package/dist/utils/validation.js.map +1 -0
- 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 -10
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +6 -7
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +5 -6
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +12 -12
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +9 -4
- 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 +5 -7
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
- 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 +4 -6
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -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 +8 -9
- 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 +3 -6
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +4 -6
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +3 -6
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +6 -6
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +7 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +5 -6
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +6 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -8
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +6 -4
- 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 +7 -6
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -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 -6
- 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 -6
- 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 +4 -3
- package/src/__mocks__/MockAssets.ts +54 -4
- package/src/__tests__/actions.test.ts +1 -5
- package/src/actions.ts +106 -71
- package/src/constants/assets.ts +792 -5
- package/src/constants/contracts.ts +5 -0
- package/src/constants/providers.ts +5 -0
- package/src/constants/supportedChains.ts +22 -2
- package/src/index.ts +76 -6
- package/src/lend/__mocks__/MockLendProvider.ts +8 -3
- package/src/lend/core/LendProvider.ts +28 -41
- package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
- 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 -42
- package/src/lend/providers/morpho/api.ts +7 -4
- package/src/lend/providers/morpho/contracts.ts +62 -13
- package/src/lend/providers/morpho/sdk.ts +85 -54
- package/src/services/ChainManager.ts +12 -21
- package/src/services/__mocks__/MockChainManager.ts +4 -7
- package/src/services/tokenBalance.spec.ts +20 -24
- package/src/services/tokenBalance.ts +39 -33
- package/src/swap/__mocks__/MockSwapProvider.ts +251 -0
- package/src/swap/core/SwapProvider.ts +577 -0
- package/src/swap/core/__tests__/SwapProvider.test.ts +620 -0
- package/src/swap/core/markets.ts +104 -0
- package/src/swap/index.ts +19 -0
- package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
- package/src/swap/namespaces/BaseSwapNamespace.ts +258 -0
- package/src/swap/namespaces/WalletSwapNamespace.ts +121 -0
- package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +365 -0
- package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +257 -0
- package/src/swap/providers/uniswap/UniswapSwapProvider.ts +217 -0
- package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
- package/src/swap/providers/uniswap/__tests__/sdk.test.ts +369 -0
- package/src/swap/providers/uniswap/abis.ts +144 -0
- package/src/swap/providers/uniswap/addresses.ts +110 -0
- package/src/swap/providers/uniswap/encoding.ts +406 -0
- package/src/swap/providers/uniswap/markets.ts +84 -0
- package/src/swap/providers/uniswap/types.ts +25 -0
- package/src/swap/providers/velodrome/VelodromeSwapProvider.ts +224 -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 +506 -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 +68 -12
- package/src/types/asset.ts +12 -9
- package/src/types/chain.ts +2 -2
- package/src/types/index.ts +2 -0
- package/src/types/lend/base.ts +10 -20
- package/src/types/lend/contracts.ts +5 -1
- package/src/types/providers.ts +22 -0
- package/src/types/swap/base.ts +372 -0
- package/src/types/swap/index.ts +1 -0
- package/src/types/transaction.ts +14 -0
- package/src/utils/approve.test.ts +258 -0
- package/src/utils/approve.ts +197 -0
- package/src/utils/assets.test.ts +16 -1
- package/src/utils/assets.ts +27 -10
- package/src/utils/validateAddresses.test.ts +439 -0
- package/src/utils/validateAddresses.ts +153 -0
- package/src/utils/validation.ts +76 -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 +6 -10
- package/src/wallet/core/providers/hosted/types/index.ts +9 -7
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +10 -10
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
- package/src/wallet/core/wallets/abstract/Wallet.ts +23 -14
- 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 +11 -14
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +0 -1
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +11 -7
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +16 -8
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +4 -4
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +6 -7
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +8 -11
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +7 -11
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +11 -7
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +10 -7
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +10 -9
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +38 -13
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +6 -6
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +13 -11
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +2 -6
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +11 -11
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +11 -11
- package/dist/supported/tokens.d.ts +0 -25
- package/dist/supported/tokens.d.ts.map +0 -1
- package/dist/supported/tokens.js +0 -37
- package/dist/supported/tokens.js.map +0 -1
- package/src/supported/tokens.ts +0 -52
|
@@ -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,9 +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 { LendProviderConfig } from '@/types/actions.js'
|
|
6
4
|
import type { Asset } from '@/types/asset.js'
|
|
5
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
7
6
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -17,22 +16,19 @@ export abstract class HostedWalletProvider<
|
|
|
17
16
|
TOptionsMap extends Record<TType, unknown>,
|
|
18
17
|
> {
|
|
19
18
|
protected chainManager: ChainManager
|
|
20
|
-
protected lendProviders:
|
|
21
|
-
|
|
22
|
-
aave?: LendProvider<LendProviderConfig>
|
|
23
|
-
}
|
|
19
|
+
protected lendProviders: LendProviders
|
|
20
|
+
protected swapProviders: SwapProviders
|
|
24
21
|
protected supportedAssets?: Asset[]
|
|
25
22
|
|
|
26
23
|
protected constructor(
|
|
27
24
|
chainManager: ChainManager,
|
|
28
|
-
lendProviders?:
|
|
29
|
-
|
|
30
|
-
aave?: LendProvider<LendProviderConfig>
|
|
31
|
-
},
|
|
25
|
+
lendProviders?: LendProviders,
|
|
26
|
+
swapProviders?: SwapProviders,
|
|
32
27
|
supportedAssets?: Asset[],
|
|
33
28
|
) {
|
|
34
29
|
this.chainManager = chainManager
|
|
35
30
|
this.lendProviders = lendProviders || {}
|
|
31
|
+
this.swapProviders = swapProviders || {}
|
|
36
32
|
this.supportedAssets = supportedAssets
|
|
37
33
|
}
|
|
38
34
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
2
1
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
3
|
-
import type {
|
|
2
|
+
import type { SwapSettings } from '@/types/actions.js'
|
|
4
3
|
import type { Asset } from '@/types/asset.js'
|
|
4
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
5
5
|
import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -12,11 +12,10 @@ import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstra
|
|
|
12
12
|
*/
|
|
13
13
|
export interface HostedProviderDeps {
|
|
14
14
|
chainManager: ChainManager
|
|
15
|
-
lendProviders?:
|
|
16
|
-
|
|
17
|
-
aave?: LendProvider<LendProviderConfig>
|
|
18
|
-
}
|
|
15
|
+
lendProviders?: LendProviders
|
|
16
|
+
swapProviders?: SwapProviders
|
|
19
17
|
supportedAssets?: Asset[]
|
|
18
|
+
swapSettings?: SwapSettings
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
/**
|
|
@@ -52,7 +51,10 @@ export interface HostedProviderFactory<
|
|
|
52
51
|
> {
|
|
53
52
|
type: TType
|
|
54
53
|
validateOptions(options: unknown): options is TOptions
|
|
55
|
-
create(
|
|
54
|
+
create(
|
|
55
|
+
deps: HostedProviderDeps,
|
|
56
|
+
options: TOptions,
|
|
57
|
+
): TInstance | Promise<TInstance>
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
/**
|
|
@@ -2,10 +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 { LendProviderConfig } from '@/types/actions.js'
|
|
8
6
|
import type { Asset } from '@/types/asset.js'
|
|
7
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
9
8
|
import { SmartWalletProvider } from '@/wallet/core/providers/smart/abstract/SmartWalletProvider.js'
|
|
10
9
|
import type { SmartWalletCreationResult } from '@/wallet/core/providers/smart/abstract/types/index.js'
|
|
11
10
|
import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
|
|
@@ -27,10 +26,9 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
27
26
|
/** Manages supported blockchain networks */
|
|
28
27
|
private chainManager: ChainManager
|
|
29
28
|
/** Providers for lending market operations */
|
|
30
|
-
private lendProviders:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
29
|
+
private lendProviders: LendProviders
|
|
30
|
+
/** Providers for swap operations */
|
|
31
|
+
private swapProviders: SwapProviders
|
|
34
32
|
/** Supported assets for this wallet provider */
|
|
35
33
|
private supportedAssets?: Asset[]
|
|
36
34
|
/** Optional 16-byte attribution suffix appended to callData */
|
|
@@ -40,21 +38,21 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
40
38
|
* Initialize the Smart Wallet Provider
|
|
41
39
|
* @param chainManager - Manages supported blockchain networks
|
|
42
40
|
* @param lendProviders - Providers for lending market operations
|
|
41
|
+
* @param swapProviders - Providers for swap operations
|
|
43
42
|
* @param supportedAssets - Optional list of supported assets
|
|
44
43
|
* @param attributionSuffix - Optional attribution suffix
|
|
45
44
|
*/
|
|
46
45
|
constructor(
|
|
47
46
|
chainManager: ChainManager,
|
|
48
|
-
lendProviders?:
|
|
49
|
-
|
|
50
|
-
aave?: LendProvider<LendProviderConfig>
|
|
51
|
-
},
|
|
47
|
+
lendProviders?: LendProviders,
|
|
48
|
+
swapProviders?: SwapProviders,
|
|
52
49
|
supportedAssets?: Asset[],
|
|
53
50
|
attributionSuffix?: string,
|
|
54
51
|
) {
|
|
55
52
|
super()
|
|
56
53
|
this.chainManager = chainManager
|
|
57
54
|
this.lendProviders = lendProviders || {}
|
|
55
|
+
this.swapProviders = swapProviders || {}
|
|
58
56
|
this.supportedAssets = supportedAssets
|
|
59
57
|
if (attributionSuffix) {
|
|
60
58
|
this.attributionSuffix =
|
|
@@ -93,6 +91,7 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
93
91
|
signer,
|
|
94
92
|
chainManager: this.chainManager,
|
|
95
93
|
lendProviders: this.lendProviders,
|
|
94
|
+
swapProviders: this.swapProviders,
|
|
96
95
|
supportedAssets: this.supportedAssets,
|
|
97
96
|
nonce,
|
|
98
97
|
attributionSuffix: this.attributionSuffix,
|
|
@@ -182,6 +181,7 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
182
181
|
signer,
|
|
183
182
|
chainManager: this.chainManager,
|
|
184
183
|
lendProviders: this.lendProviders,
|
|
184
|
+
swapProviders: this.swapProviders,
|
|
185
185
|
supportedAssets: this.supportedAssets,
|
|
186
186
|
deploymentAddress: walletAddress,
|
|
187
187
|
attributionSuffix: this.attributionSuffix,
|
package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts
CHANGED
|
@@ -413,6 +413,7 @@ describe('DefaultSmartWalletProvider', () => {
|
|
|
413
413
|
const provider = new DefaultSmartWalletProvider(
|
|
414
414
|
mockChainManager,
|
|
415
415
|
{ morpho: mockLendProvider },
|
|
416
|
+
undefined,
|
|
416
417
|
supportedAssets,
|
|
417
418
|
attributionSeed,
|
|
418
419
|
)
|
|
@@ -440,6 +441,7 @@ describe('DefaultSmartWalletProvider', () => {
|
|
|
440
441
|
const provider = new DefaultSmartWalletProvider(
|
|
441
442
|
mockChainManager,
|
|
442
443
|
{ morpho: mockLendProvider },
|
|
444
|
+
undefined,
|
|
443
445
|
supportedAssets,
|
|
444
446
|
attributionSeed,
|
|
445
447
|
)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Address, LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
3
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
4
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
5
4
|
import { WalletLendNamespace } from '@/lend/namespaces/WalletLendNamespace.js'
|
|
6
5
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
6
|
import { fetchERC20Balance, fetchETHBalance } from '@/services/tokenBalance.js'
|
|
8
|
-
import {
|
|
9
|
-
import type {
|
|
7
|
+
import { WalletSwapNamespace } from '@/swap/namespaces/WalletSwapNamespace.js'
|
|
8
|
+
import type { SwapSettings } from '@/types/actions.js'
|
|
10
9
|
import type { Asset, TokenBalance } from '@/types/asset.js'
|
|
11
|
-
import type {
|
|
10
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
11
|
+
import type { TransactionData } from '@/types/transaction.js'
|
|
12
12
|
import type {
|
|
13
13
|
BatchTransactionReturnType,
|
|
14
14
|
TransactionReturnType,
|
|
@@ -23,10 +23,11 @@ export abstract class Wallet {
|
|
|
23
23
|
/** Lend namespace with all lending operations */
|
|
24
24
|
lend?: WalletLendNamespace
|
|
25
25
|
/** Providers for lending market operations */
|
|
26
|
-
protected lendProviders:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
protected lendProviders: LendProviders
|
|
27
|
+
/** Swap namespace with all swap operations */
|
|
28
|
+
swap?: WalletSwapNamespace
|
|
29
|
+
/** Providers for swap operations */
|
|
30
|
+
protected swapProviders: SwapProviders
|
|
30
31
|
/** Manages supported blockchain networks and RPC clients */
|
|
31
32
|
protected chainManager: ChainManager
|
|
32
33
|
/** List of supported assets for this wallet */
|
|
@@ -53,22 +54,30 @@ export abstract class Wallet {
|
|
|
53
54
|
* Create a new wallet
|
|
54
55
|
* @param chainManager - Chain manager for the wallet
|
|
55
56
|
* @param lendProviders - Lend providers for the wallet
|
|
56
|
-
* @param
|
|
57
|
+
* @param swapProviders - Swap providers for the wallet
|
|
58
|
+
* @param supportedAssets - List of supported assets (defaults to empty)
|
|
57
59
|
*/
|
|
58
60
|
protected constructor(
|
|
59
61
|
chainManager: ChainManager,
|
|
60
|
-
lendProviders?:
|
|
61
|
-
|
|
62
|
-
aave?: LendProvider<LendProviderConfig>
|
|
63
|
-
},
|
|
62
|
+
lendProviders?: LendProviders,
|
|
63
|
+
swapProviders?: SwapProviders,
|
|
64
64
|
supportedAssets?: Asset[],
|
|
65
|
+
swapSettings?: SwapSettings,
|
|
65
66
|
) {
|
|
66
67
|
this.chainManager = chainManager
|
|
67
68
|
this.lendProviders = lendProviders || {}
|
|
68
|
-
this.
|
|
69
|
+
this.swapProviders = swapProviders || {}
|
|
70
|
+
this.supportedAssets = supportedAssets || []
|
|
69
71
|
if (this.lendProviders.morpho || this.lendProviders.aave) {
|
|
70
72
|
this.lend = new WalletLendNamespace(this.lendProviders, this)
|
|
71
73
|
}
|
|
74
|
+
if (Object.values(this.swapProviders).some(Boolean)) {
|
|
75
|
+
this.swap = new WalletSwapNamespace(
|
|
76
|
+
this.swapProviders,
|
|
77
|
+
this,
|
|
78
|
+
swapSettings,
|
|
79
|
+
)
|
|
80
|
+
}
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
/**
|
|
@@ -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,10 @@ 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 { LendProviderConfig } from '@/types/actions.js'
|
|
19
17
|
import type { Asset } from '@/types/asset.js'
|
|
20
|
-
import type {
|
|
18
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
19
|
+
import type { TransactionData } from '@/types/transaction.js'
|
|
21
20
|
import { parseAssetAmount } from '@/utils/assets.js'
|
|
22
21
|
import { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWallet.js'
|
|
23
22
|
import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
|
|
@@ -59,6 +58,7 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
59
58
|
* @param signer - Local account for signing transactions
|
|
60
59
|
* @param chainManager - Network management service
|
|
61
60
|
* @param lendProviders - Lending operations providers
|
|
61
|
+
* @param swapProviders - Swap operations providers
|
|
62
62
|
* @param deploymentAddress - Known wallet address (if already deployed)
|
|
63
63
|
* @param ownerIndex - Index of signer in owners array
|
|
64
64
|
* @param nonce - Nonce for address generation
|
|
@@ -67,16 +67,14 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
67
67
|
signers: Signer[],
|
|
68
68
|
signer: LocalAccount,
|
|
69
69
|
chainManager: ChainManager,
|
|
70
|
-
lendProviders?:
|
|
71
|
-
|
|
72
|
-
aave?: LendProvider<LendProviderConfig>
|
|
73
|
-
},
|
|
70
|
+
lendProviders?: LendProviders,
|
|
71
|
+
swapProviders?: SwapProviders,
|
|
74
72
|
supportedAssets?: Asset[],
|
|
75
73
|
deploymentAddress?: Address,
|
|
76
74
|
nonce?: bigint,
|
|
77
75
|
attributionSuffix?: Hex,
|
|
78
76
|
) {
|
|
79
|
-
super(chainManager, lendProviders, supportedAssets)
|
|
77
|
+
super(chainManager, lendProviders, swapProviders, supportedAssets)
|
|
80
78
|
|
|
81
79
|
const { signersWithLocalAccount, signerIndex } =
|
|
82
80
|
DefaultSmartWallet.ensureLocalAccountSigner(signers, signer)
|
|
@@ -117,10 +115,8 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
117
115
|
signer: LocalAccount
|
|
118
116
|
chainManager: ChainManager
|
|
119
117
|
signers?: Signer[]
|
|
120
|
-
lendProviders?:
|
|
121
|
-
|
|
122
|
-
aave?: LendProvider<LendProviderConfig>
|
|
123
|
-
}
|
|
118
|
+
lendProviders?: LendProviders
|
|
119
|
+
swapProviders?: SwapProviders
|
|
124
120
|
supportedAssets?: Asset[]
|
|
125
121
|
deploymentAddress?: Address
|
|
126
122
|
nonce?: bigint
|
|
@@ -132,6 +128,7 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
132
128
|
params.signer,
|
|
133
129
|
params.chainManager,
|
|
134
130
|
params.lendProviders,
|
|
131
|
+
params.swapProviders,
|
|
135
132
|
params.supportedAssets,
|
|
136
133
|
params.deploymentAddress,
|
|
137
134
|
params.nonce,
|
|
@@ -540,7 +537,7 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
540
537
|
|
|
541
538
|
// Handle ETH transfers
|
|
542
539
|
if (asset.type === 'native') {
|
|
543
|
-
const parsedAmount = parseAssetAmount(
|
|
540
|
+
const parsedAmount = parseAssetAmount(asset, amount)
|
|
544
541
|
|
|
545
542
|
return {
|
|
546
543
|
to: recipientAddress,
|
|
@@ -550,7 +547,7 @@ export class DefaultSmartWallet extends SmartWallet {
|
|
|
550
547
|
}
|
|
551
548
|
|
|
552
549
|
// Handle ERC20 token transfers
|
|
553
|
-
const parsedAmount = parseAssetAmount(
|
|
550
|
+
const parsedAmount = parseAssetAmount(asset, amount)
|
|
554
551
|
|
|
555
552
|
// Encode ERC20 transfer function call
|
|
556
553
|
const transferData = encodeFunctionData({
|
|
@@ -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,10 +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 { LendProviderConfig } from '@/types/actions.js'
|
|
8
6
|
import type { Asset } from '@/types/asset.js'
|
|
7
|
+
import type { LendProviders, SwapProviders } from '@/types/providers.js'
|
|
9
8
|
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
10
9
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
11
10
|
import type {
|
|
@@ -32,6 +31,7 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
|
|
|
32
31
|
* @param params.privyClient - Privy client instance
|
|
33
32
|
* @param params.chainManager - Chain manager for multi-chain operations
|
|
34
33
|
* @param params.lendProviders - Optional lend providers for DeFi operations
|
|
34
|
+
* @param params.swapProviders - Optional swap providers for trading operations
|
|
35
35
|
* @param params.supportedAssets - Optional list of supported assets
|
|
36
36
|
* @param params.authorizationContext - Optional authorization context for the Privy client.
|
|
37
37
|
* Used when Privy needs to sign requests.
|
|
@@ -41,14 +41,17 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
|
|
|
41
41
|
constructor(params: {
|
|
42
42
|
privyClient: PrivyClient
|
|
43
43
|
chainManager: ChainManager
|
|
44
|
-
lendProviders?:
|
|
45
|
-
|
|
46
|
-
aave?: LendProvider<LendProviderConfig>
|
|
47
|
-
}
|
|
44
|
+
lendProviders?: LendProviders
|
|
45
|
+
swapProviders?: SwapProviders
|
|
48
46
|
supportedAssets?: Asset[]
|
|
49
47
|
authorizationContext?: AuthorizationContext
|
|
50
48
|
}) {
|
|
51
|
-
super(
|
|
49
|
+
super(
|
|
50
|
+
params.chainManager,
|
|
51
|
+
params.lendProviders,
|
|
52
|
+
params.swapProviders,
|
|
53
|
+
params.supportedAssets,
|
|
54
|
+
)
|
|
52
55
|
this.privyClient = params.privyClient
|
|
53
56
|
this.authorizationContext = params.authorizationContext
|
|
54
57
|
}
|
|
@@ -63,6 +66,7 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider<
|
|
|
63
66
|
address: getAddress(params.address),
|
|
64
67
|
chainManager: this.chainManager,
|
|
65
68
|
lendProviders: this.lendProviders,
|
|
69
|
+
swapProviders: this.swapProviders,
|
|
66
70
|
supportedAssets: this.supportedAssets,
|
|
67
71
|
})
|
|
68
72
|
}
|