@eth-optimism/actions-sdk 0.0.0-main-20251009211102
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/LICENSE +22 -0
- package/README.md +106 -0
- package/dist/actions.d.ts +58 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +88 -0
- package/dist/actions.js.map +1 -0
- package/dist/actions.test.d.ts +2 -0
- package/dist/actions.test.d.ts.map +1 -0
- package/dist/actions.test.js +620 -0
- package/dist/actions.test.js.map +1 -0
- package/dist/constants/assets.d.ts +3 -0
- package/dist/constants/assets.d.ts.map +1 -0
- package/dist/constants/assets.js +16 -0
- package/dist/constants/assets.js.map +1 -0
- package/dist/constants/config.d.ts +10 -0
- package/dist/constants/config.d.ts.map +1 -0
- package/dist/constants/config.js +10 -0
- package/dist/constants/config.js.map +1 -0
- package/dist/constants/supportedChains.d.ts +3 -0
- package/dist/constants/supportedChains.d.ts.map +1 -0
- package/dist/constants/supportedChains.js +8 -0
- package/dist/constants/supportedChains.js.map +1 -0
- package/dist/core/asset/__mocks__/mockAsset.d.ts +6 -0
- package/dist/core/asset/__mocks__/mockAsset.d.ts.map +1 -0
- package/dist/core/asset/__mocks__/mockAsset.js +12 -0
- package/dist/core/asset/__mocks__/mockAsset.js.map +1 -0
- package/dist/core/error/errors.d.ts +19 -0
- package/dist/core/error/errors.d.ts.map +1 -0
- package/dist/core/error/errors.js +22 -0
- package/dist/core/error/errors.js.map +1 -0
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts +2 -0
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.d.ts.map +1 -0
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.js +41 -0
- package/dist/core/utils/__tests__/retryOnStaleRead.spec.js.map +1 -0
- package/dist/core/utils/retryOnStaleRead.d.ts +14 -0
- package/dist/core/utils/retryOnStaleRead.d.ts.map +1 -0
- package/dist/core/utils/retryOnStaleRead.js +29 -0
- package/dist/core/utils/retryOnStaleRead.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/index.node.d.ts +5 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +4 -0
- package/dist/index.node.js.map +1 -0
- package/dist/index.react.d.ts +5 -0
- package/dist/index.react.d.ts.map +1 -0
- package/dist/index.react.js +4 -0
- package/dist/index.react.js.map +1 -0
- package/dist/lend/__mocks__/mockLendTransaction.d.ts +22 -0
- package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +1 -0
- package/dist/lend/__mocks__/mockLendTransaction.js +32 -0
- package/dist/lend/__mocks__/mockLendTransaction.js.map +1 -0
- package/dist/lend/core/LendProvider.d.ts +122 -0
- package/dist/lend/core/LendProvider.d.ts.map +1 -0
- package/dist/lend/core/LendProvider.js +183 -0
- package/dist/lend/core/LendProvider.js.map +1 -0
- package/dist/lend/core/__tests__/LendProvider.test.d.ts +2 -0
- package/dist/lend/core/__tests__/LendProvider.test.d.ts.map +1 -0
- package/dist/lend/core/__tests__/LendProvider.test.js +247 -0
- package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -0
- package/dist/lend/index.d.ts +3 -0
- package/dist/lend/index.d.ts.map +1 -0
- package/dist/lend/index.js +3 -0
- package/dist/lend/index.js.map +1 -0
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts +15 -0
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -0
- package/dist/lend/namespaces/ActionsLendNamespace.js +17 -0
- package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -0
- package/dist/lend/namespaces/WalletLendNamespace.d.ts +36 -0
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -0
- package/dist/lend/namespaces/WalletLendNamespace.js +68 -0
- package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -0
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts +2 -0
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.d.ts.map +1 -0
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +41 -0
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -0
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts +2 -0
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.d.ts.map +1 -0
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +188 -0
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +55 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.js +193 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -0
- package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts +21 -0
- package/dist/lend/providers/morpho/__mocks__/mockVault.d.ts.map +1 -0
- package/dist/lend/providers/morpho/__mocks__/mockVault.js +27 -0
- package/dist/lend/providers/morpho/__mocks__/mockVault.js.map +1 -0
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts +2 -0
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.d.ts.map +1 -0
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +259 -0
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -0
- package/dist/lend/providers/morpho/__tests__/api.test.d.ts +2 -0
- package/dist/lend/providers/morpho/__tests__/api.test.d.ts.map +1 -0
- package/dist/lend/providers/morpho/__tests__/api.test.js +66 -0
- package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts +2 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +332 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -0
- package/dist/lend/providers/morpho/api.d.ts +14 -0
- package/dist/lend/providers/morpho/api.d.ts.map +1 -0
- package/dist/lend/providers/morpho/api.js +76 -0
- package/dist/lend/providers/morpho/api.js.map +1 -0
- package/dist/lend/providers/morpho/sdk.d.ts +61 -0
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -0
- package/dist/lend/providers/morpho/sdk.js +300 -0
- package/dist/lend/providers/morpho/sdk.js.map +1 -0
- package/dist/nodeActionsFactory.d.ts +19 -0
- package/dist/nodeActionsFactory.d.ts.map +1 -0
- package/dist/nodeActionsFactory.js +17 -0
- package/dist/nodeActionsFactory.js.map +1 -0
- package/dist/reactActionsFactory.d.ts +19 -0
- package/dist/reactActionsFactory.d.ts.map +1 -0
- package/dist/reactActionsFactory.js +17 -0
- package/dist/reactActionsFactory.js.map +1 -0
- package/dist/services/ChainManager.d.ts +90 -0
- package/dist/services/ChainManager.d.ts.map +1 -0
- package/dist/services/ChainManager.js +183 -0
- package/dist/services/ChainManager.js.map +1 -0
- package/dist/services/ChainManager.spec.d.ts +2 -0
- package/dist/services/ChainManager.spec.d.ts.map +1 -0
- package/dist/services/ChainManager.spec.js +260 -0
- package/dist/services/ChainManager.spec.js.map +1 -0
- package/dist/services/tokenBalance.d.ts +15 -0
- package/dist/services/tokenBalance.d.ts.map +1 -0
- package/dist/services/tokenBalance.js +82 -0
- package/dist/services/tokenBalance.js.map +1 -0
- package/dist/services/tokenBalance.spec.d.ts +2 -0
- package/dist/services/tokenBalance.spec.d.ts.map +1 -0
- package/dist/services/tokenBalance.spec.js +73 -0
- package/dist/services/tokenBalance.spec.js.map +1 -0
- package/dist/supported/tokens.d.ts +25 -0
- package/dist/supported/tokens.d.ts.map +1 -0
- package/dist/supported/tokens.js +88 -0
- package/dist/supported/tokens.js.map +1 -0
- package/dist/test/MockAssets.d.ts +10 -0
- package/dist/test/MockAssets.d.ts.map +1 -0
- package/dist/test/MockAssets.js +29 -0
- package/dist/test/MockAssets.js.map +1 -0
- package/dist/test/MockChainManager.d.ts +31 -0
- package/dist/test/MockChainManager.d.ts.map +1 -0
- package/dist/test/MockChainManager.js +92 -0
- package/dist/test/MockChainManager.js.map +1 -0
- package/dist/test/MockLendProvider.d.ts +68 -0
- package/dist/test/MockLendProvider.d.ts.map +1 -0
- package/dist/test/MockLendProvider.js +258 -0
- package/dist/test/MockLendProvider.js.map +1 -0
- package/dist/test/MockMarkets.d.ts +15 -0
- package/dist/test/MockMarkets.d.ts.map +1 -0
- package/dist/test/MockMarkets.js +26 -0
- package/dist/test/MockMarkets.js.map +1 -0
- package/dist/test/MockPrivyClient.d.ts +66 -0
- package/dist/test/MockPrivyClient.d.ts.map +1 -0
- package/dist/test/MockPrivyClient.js +93 -0
- package/dist/test/MockPrivyClient.js.map +1 -0
- package/dist/test/utils.d.ts +2 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/test/utils.js +5 -0
- package/dist/test/utils.js.map +1 -0
- package/dist/types/actions.d.ts +69 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +2 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/asset.d.ts +32 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/asset.js +2 -0
- package/dist/types/asset.js.map +1 -0
- package/dist/types/chain.d.ts +26 -0
- package/dist/types/chain.d.ts.map +1 -0
- package/dist/types/chain.js +2 -0
- package/dist/types/chain.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lend/base.d.ts +370 -0
- package/dist/types/lend/base.d.ts.map +1 -0
- package/dist/types/lend/base.js +4 -0
- package/dist/types/lend/base.js.map +1 -0
- package/dist/types/lend/index.d.ts +3 -0
- package/dist/types/lend/index.d.ts.map +1 -0
- package/dist/types/lend/index.js +3 -0
- package/dist/types/lend/index.js.map +1 -0
- package/dist/types/lend/morpho.d.ts +7 -0
- package/dist/types/lend/morpho.d.ts.map +1 -0
- package/dist/types/lend/morpho.js +6 -0
- package/dist/types/lend/morpho.js.map +1 -0
- package/dist/types/wallet.d.ts +26 -0
- package/dist/types/wallet.d.ts.map +1 -0
- package/dist/types/wallet.js +2 -0
- package/dist/types/wallet.js.map +1 -0
- package/dist/utils/assets.d.ts +33 -0
- package/dist/utils/assets.d.ts.map +1 -0
- package/dist/utils/assets.js +53 -0
- package/dist/utils/assets.js.map +1 -0
- package/dist/utils/assets.test.d.ts +2 -0
- package/dist/utils/assets.test.d.ts.map +1 -0
- package/dist/utils/assets.test.js +24 -0
- package/dist/utils/assets.test.js.map +1 -0
- package/dist/utils/markets.d.ts +17 -0
- package/dist/utils/markets.d.ts.map +1 -0
- package/dist/utils/markets.js +25 -0
- package/dist/utils/markets.js.map +1 -0
- package/dist/utils/test.d.ts +117 -0
- package/dist/utils/test.d.ts.map +1 -0
- package/dist/utils/test.js +265 -0
- package/dist/utils/test.js.map +1 -0
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +84 -0
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -0
- package/dist/wallet/core/namespace/WalletNamespace.js +89 -0
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -0
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.d.ts +2 -0
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.d.ts.map +1 -0
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +249 -0
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -0
- package/dist/wallet/core/providers/WalletProvider.d.ts +63 -0
- package/dist/wallet/core/providers/WalletProvider.d.ts.map +1 -0
- package/dist/wallet/core/providers/WalletProvider.js +85 -0
- package/dist/wallet/core/providers/WalletProvider.js.map +1 -0
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.d.ts +2 -0
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +246 -0
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -0
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +33 -0
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +13 -0
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -0
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts +20 -0
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.d.ts.map +1 -0
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js +29 -0
- package/dist/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js.map +1 -0
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.d.ts +2 -0
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.d.ts.map +1 -0
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +52 -0
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -0
- package/dist/wallet/core/providers/hosted/types/index.d.ts +70 -0
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -0
- package/dist/wallet/core/providers/hosted/types/index.js +2 -0
- package/dist/wallet/core/providers/hosted/types/index.js.map +1 -0
- package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.d.ts +61 -0
- package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.d.ts.map +1 -0
- package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.js +7 -0
- package/dist/wallet/core/providers/smart/abstract/SmartWalletProvider.js.map +1 -0
- package/dist/wallet/core/providers/smart/abstract/types/index.d.ts +16 -0
- package/dist/wallet/core/providers/smart/abstract/types/index.d.ts.map +1 -0
- package/dist/wallet/core/providers/smart/abstract/types/index.js +2 -0
- package/dist/wallet/core/providers/smart/abstract/types/index.js.map +1 -0
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +77 -0
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -0
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +125 -0
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -0
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +325 -0
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -0
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +96 -0
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/abstract/Wallet.js +81 -0
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -0
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +15 -0
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +18 -0
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -0
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +44 -0
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -0
- package/dist/wallet/core/wallets/abstract/types/index.d.ts +30 -0
- package/dist/wallet/core/wallets/abstract/types/index.d.ts.map +1 -0
- package/dist/wallet/core/wallets/abstract/types/index.js +2 -0
- package/dist/wallet/core/wallets/abstract/types/index.js.map +1 -0
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts +44 -0
- package/dist/wallet/core/wallets/eoa/EOAWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/eoa/EOAWallet.js +67 -0
- package/dist/wallet/core/wallets/eoa/EOAWallet.js.map +1 -0
- package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.d.ts +28 -0
- package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.js +51 -0
- package/dist/wallet/core/wallets/eoa/__mocks__/EOAWallet.js.map +1 -0
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +191 -0
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts +69 -0
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.js +8 -0
- package/dist/wallet/core/wallets/smart/abstract/SmartWallet.js.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.d.ts +43 -0
- package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js +67 -0
- package/dist/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/types/index.d.ts +19 -0
- package/dist/wallet/core/wallets/smart/abstract/types/index.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/abstract/types/index.js +2 -0
- package/dist/wallet/core/wallets/smart/abstract/types/index.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +191 -0
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +436 -0
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.d.ts +40 -0
- package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.js +72 -0
- package/dist/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +561 -0
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/constants/index.d.ts +719 -0
- package/dist/wallet/core/wallets/smart/default/constants/index.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/constants/index.js +480 -0
- package/dist/wallet/core/wallets/smart/default/constants/index.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js +52 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.js +109 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.js +22 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.d.ts +2 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js +44 -0
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.d.ts +12 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.js +23 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerInArray.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.d.ts +30 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.js +40 -0
- package/dist/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.d.ts +8 -0
- package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.js +13 -0
- package/dist/wallet/core/wallets/smart/default/utils/formatPublicKey.js.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.d.ts +12 -0
- package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js +18 -0
- package/dist/wallet/core/wallets/smart/default/utils/getSignerPublicKey.js.map +1 -0
- package/dist/wallet/core/wallets/smart/error/errors.d.ts +8 -0
- package/dist/wallet/core/wallets/smart/error/errors.d.ts.map +1 -0
- package/dist/wallet/core/wallets/smart/error/errors.js +9 -0
- package/dist/wallet/core/wallets/smart/error/errors.js.map +1 -0
- package/dist/wallet/node/index.d.ts +4 -0
- package/dist/wallet/node/index.d.ts.map +1 -0
- package/dist/wallet/node/index.js +3 -0
- package/dist/wallet/node/index.js.map +1 -0
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +34 -0
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +43 -0
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -0
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +80 -0
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -0
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +15 -0
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +37 -0
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -0
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.d.ts +2 -0
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +62 -0
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -0
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +50 -0
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +60 -0
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -0
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +132 -0
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -0
- package/dist/wallet/node/providers/hosted/types/index.d.ts +90 -0
- package/dist/wallet/node/providers/hosted/types/index.d.ts.map +1 -0
- package/dist/wallet/node/providers/hosted/types/index.js +2 -0
- package/dist/wallet/node/providers/hosted/types/index.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +43 -0
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +47 -0
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts +2 -0
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +105 -0
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts +2 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +39 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts +15 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js +23 -0
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +46 -0
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +34 -0
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts +2 -0
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +82 -0
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts +2 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +61 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.d.ts +17 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.d.ts.map +1 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.js +24 -0
- package/dist/wallet/node/wallets/hosted/turnkey/utils/createSigner.js.map +1 -0
- package/dist/wallet/react/index.d.ts +3 -0
- package/dist/wallet/react/index.d.ts.map +1 -0
- package/dist/wallet/react/index.js +2 -0
- package/dist/wallet/react/index.js.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +29 -0
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +36 -0
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts +33 -0
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js +30 -0
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +79 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +29 -0
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +38 -0
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts +33 -0
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js +29 -0
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +79 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -0
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +49 -0
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +60 -0
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -0
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts +2 -0
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +110 -0
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -0
- package/dist/wallet/react/providers/hosted/types/index.d.ts +86 -0
- package/dist/wallet/react/providers/hosted/types/index.d.ts.map +1 -0
- package/dist/wallet/react/providers/hosted/types/index.js +2 -0
- package/dist/wallet/react/providers/hosted/types/index.js.map +1 -0
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +15 -0
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -0
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +46 -0
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -0
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.d.ts +2 -0
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.d.ts.map +1 -0
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +68 -0
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +39 -0
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +43 -0
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +16 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js +15 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +117 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js +62 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.d.ts +13 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.js +32 -0
- package/dist/wallet/react/wallets/hosted/dynamic/utils/createSigner.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +34 -0
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +38 -0
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.d.ts +16 -0
- package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.js +15 -0
- package/dist/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +95 -0
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +55 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.d.ts +13 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.js +24 -0
- package/dist/wallet/react/wallets/hosted/privy/utils/createSigner.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +53 -0
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +43 -0
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +82 -0
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts +2 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +61 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.d.ts +17 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.d.ts.map +1 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.js +24 -0
- package/dist/wallet/react/wallets/hosted/turnkey/utils/createSigner.js.map +1 -0
- package/package.json +86 -0
- package/src/actions.test.ts +885 -0
- package/src/actions.ts +190 -0
- package/src/constants/assets.ts +20 -0
- package/src/constants/config.ts +9 -0
- package/src/constants/supportedChains.ts +10 -0
- package/src/core/asset/__mocks__/mockAsset.ts +13 -0
- package/src/core/error/errors.ts +27 -0
- package/src/core/utils/__tests__/retryOnStaleRead.spec.ts +56 -0
- package/src/core/utils/retryOnStaleRead.ts +39 -0
- package/src/index.node.ts +4 -0
- package/src/index.react.ts +4 -0
- package/src/index.ts +35 -0
- package/src/lend/__mocks__/mockLendTransaction.ts +47 -0
- package/src/lend/core/LendProvider.ts +311 -0
- package/src/lend/core/__tests__/LendProvider.test.ts +305 -0
- package/src/lend/index.ts +2 -0
- package/src/lend/namespaces/ActionsLendNamespace.ts +26 -0
- package/src/lend/namespaces/WalletLendNamespace.ts +116 -0
- package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +58 -0
- package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +223 -0
- package/src/lend/providers/morpho/MorphoLendProvider.ts +258 -0
- package/src/lend/providers/morpho/__mocks__/mockVault.ts +28 -0
- package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +356 -0
- package/src/lend/providers/morpho/__tests__/api.test.ts +104 -0
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +366 -0
- package/src/lend/providers/morpho/api.ts +86 -0
- package/src/lend/providers/morpho/sdk.ts +418 -0
- package/src/nodeActionsFactory.ts +37 -0
- package/src/reactActionsFactory.ts +37 -0
- package/src/services/ChainManager.spec.ts +332 -0
- package/src/services/ChainManager.ts +237 -0
- package/src/services/tokenBalance.spec.ts +93 -0
- package/src/services/tokenBalance.ts +122 -0
- package/src/supported/tokens.ts +103 -0
- package/src/test/MockAssets.ts +33 -0
- package/src/test/MockChainManager.ts +138 -0
- package/src/test/MockLendProvider.ts +397 -0
- package/src/test/MockMarkets.ts +32 -0
- package/src/test/MockPrivyClient.ts +118 -0
- package/src/test/utils.ts +5 -0
- package/src/types/actions.ts +80 -0
- package/src/types/asset.ts +34 -0
- package/src/types/chain.ts +30 -0
- package/src/types/index.ts +5 -0
- package/src/types/lend/base.ts +415 -0
- package/src/types/lend/index.ts +2 -0
- package/src/types/lend/morpho.ts +16 -0
- package/src/types/wallet.ts +28 -0
- package/src/utils/assets.test.ts +28 -0
- package/src/utils/assets.ts +71 -0
- package/src/utils/markets.ts +35 -0
- package/src/utils/test.ts +379 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +125 -0
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +398 -0
- package/src/wallet/core/providers/WalletProvider.ts +123 -0
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +374 -0
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +45 -0
- package/src/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.ts +46 -0
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +77 -0
- package/src/wallet/core/providers/hosted/types/index.ts +76 -0
- package/src/wallet/core/providers/smart/abstract/SmartWalletProvider.ts +64 -0
- package/src/wallet/core/providers/smart/abstract/types/index.ts +17 -0
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +175 -0
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +467 -0
- package/src/wallet/core/wallets/abstract/Wallet.ts +149 -0
- package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +40 -0
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +61 -0
- package/src/wallet/core/wallets/abstract/types/index.ts +42 -0
- package/src/wallet/core/wallets/eoa/EOAWallet.ts +96 -0
- package/src/wallet/core/wallets/eoa/__mocks__/EOAWallet.ts +112 -0
- package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +299 -0
- package/src/wallet/core/wallets/smart/abstract/SmartWallet.ts +93 -0
- package/src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts +161 -0
- package/src/wallet/core/wallets/smart/abstract/types/index.ts +19 -0
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +598 -0
- package/src/wallet/core/wallets/smart/default/__mocks__/DefaultSmartWallet.ts +172 -0
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +781 -0
- package/src/wallet/core/wallets/smart/default/constants/index.ts +482 -0
- package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.ts +68 -0
- package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerIndexOnChain.spec.ts +147 -0
- package/src/wallet/core/wallets/smart/default/utils/__tests__/formatPublicKey.spec.ts +28 -0
- package/src/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.ts +60 -0
- package/src/wallet/core/wallets/smart/default/utils/findSignerInArray.ts +30 -0
- package/src/wallet/core/wallets/smart/default/utils/findSignerIndexOnChain.ts +66 -0
- package/src/wallet/core/wallets/smart/default/utils/formatPublicKey.ts +14 -0
- package/src/wallet/core/wallets/smart/default/utils/getSignerPublicKey.ts +18 -0
- package/src/wallet/core/wallets/smart/error/errors.ts +18 -0
- package/src/wallet/node/index.ts +7 -0
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +65 -0
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +112 -0
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +55 -0
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +89 -0
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +84 -0
- package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +182 -0
- package/src/wallet/node/providers/hosted/types/index.ts +102 -0
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +78 -0
- package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +142 -0
- package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +48 -0
- package/src/wallet/node/wallets/hosted/privy/utils/createSigner.ts +32 -0
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +90 -0
- package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +104 -0
- package/src/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +77 -0
- package/src/wallet/node/wallets/hosted/turnkey/utils/createSigner.ts +32 -0
- package/src/wallet/react/index.ts +5 -0
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +54 -0
- package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +57 -0
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +105 -0
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +56 -0
- package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +56 -0
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +103 -0
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +78 -0
- package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +142 -0
- package/src/wallet/react/providers/hosted/types/index.ts +100 -0
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +57 -0
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +117 -0
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +67 -0
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +22 -0
- package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +148 -0
- package/src/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.ts +82 -0
- package/src/wallet/react/wallets/hosted/dynamic/utils/createSigner.ts +38 -0
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +63 -0
- package/src/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.ts +22 -0
- package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +109 -0
- package/src/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +66 -0
- package/src/wallet/react/wallets/hosted/privy/utils/createSigner.ts +30 -0
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +94 -0
- package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +99 -0
- package/src/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +72 -0
- package/src/wallet/react/wallets/hosted/turnkey/utils/createSigner.ts +29 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { createWalletClient } from 'viem';
|
|
2
|
+
import { unichain } from 'viem/chains';
|
|
3
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { MockChainManager } from '../../../../../test/MockChainManager.js';
|
|
5
|
+
import { getRandomAddress } from '../../../../../test/utils.js';
|
|
6
|
+
import { EOAWallet } from '../EOAWallet.js';
|
|
7
|
+
vi.mock('viem', async () => ({
|
|
8
|
+
// @ts-ignore - importActual returns unknown
|
|
9
|
+
...(await vi.importActual('viem')),
|
|
10
|
+
createWalletClient: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
// Concrete implementation for testing abstract class
|
|
13
|
+
class TestEOAWallet extends EOAWallet {
|
|
14
|
+
constructor(address, signer, chainManager) {
|
|
15
|
+
super(chainManager);
|
|
16
|
+
this.address = address;
|
|
17
|
+
this.signer = signer;
|
|
18
|
+
}
|
|
19
|
+
static async create(address, signer, chainManager) {
|
|
20
|
+
const wallet = new TestEOAWallet(address, signer, chainManager);
|
|
21
|
+
await wallet.initialize();
|
|
22
|
+
return wallet;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const mockAddress = getRandomAddress();
|
|
26
|
+
const mockChainManager = new MockChainManager({
|
|
27
|
+
supportedChains: [130], // Unichain
|
|
28
|
+
});
|
|
29
|
+
const mockLocalAccount = {
|
|
30
|
+
address: mockAddress,
|
|
31
|
+
signMessage: vi.fn(),
|
|
32
|
+
sign: vi.fn(),
|
|
33
|
+
signTransaction: vi.fn(),
|
|
34
|
+
signTypedData: vi.fn(),
|
|
35
|
+
};
|
|
36
|
+
const mockTransactionHash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef';
|
|
37
|
+
const mockReceipt = {
|
|
38
|
+
transactionHash: mockTransactionHash,
|
|
39
|
+
blockNumber: 12345n,
|
|
40
|
+
status: 'success',
|
|
41
|
+
from: mockAddress,
|
|
42
|
+
to: getRandomAddress(),
|
|
43
|
+
gasUsed: 21000n,
|
|
44
|
+
};
|
|
45
|
+
describe('EOAWallet', () => {
|
|
46
|
+
let wallet;
|
|
47
|
+
let mockWalletClient;
|
|
48
|
+
let mockPublicClient;
|
|
49
|
+
beforeEach(async () => {
|
|
50
|
+
vi.clearAllMocks();
|
|
51
|
+
// Setup mock wallet client
|
|
52
|
+
mockWalletClient = {
|
|
53
|
+
sendTransaction: vi.fn().mockResolvedValue(mockTransactionHash),
|
|
54
|
+
};
|
|
55
|
+
// Setup mock public client
|
|
56
|
+
mockPublicClient = {
|
|
57
|
+
waitForTransactionReceipt: vi.fn().mockResolvedValue(mockReceipt),
|
|
58
|
+
};
|
|
59
|
+
// Mock chainManager methods
|
|
60
|
+
vi.spyOn(mockChainManager, 'getChain').mockReturnValue(unichain);
|
|
61
|
+
vi.spyOn(mockChainManager, 'getRpcUrls').mockReturnValue([
|
|
62
|
+
'https://rpc1.example.com',
|
|
63
|
+
'https://rpc2.example.com',
|
|
64
|
+
]);
|
|
65
|
+
vi.spyOn(mockChainManager, 'getPublicClient').mockReturnValue(mockPublicClient);
|
|
66
|
+
// Mock createWalletClient
|
|
67
|
+
vi.mocked(createWalletClient).mockResolvedValue(mockWalletClient);
|
|
68
|
+
wallet = await TestEOAWallet.create(mockAddress, mockLocalAccount, mockChainManager);
|
|
69
|
+
});
|
|
70
|
+
describe('walletClient', () => {
|
|
71
|
+
it('should create a wallet client with correct configuration', async () => {
|
|
72
|
+
const walletClient = await wallet.walletClient(unichain.id);
|
|
73
|
+
expect(createWalletClient).toHaveBeenCalledOnce();
|
|
74
|
+
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0];
|
|
75
|
+
expect(callArgs.account).toBe(mockLocalAccount);
|
|
76
|
+
expect(callArgs.chain).toBe(unichain);
|
|
77
|
+
expect(walletClient).toBe(mockWalletClient);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('send', () => {
|
|
81
|
+
const mockTransactionData = {
|
|
82
|
+
to: getRandomAddress(),
|
|
83
|
+
value: 1000000000000000000n, // 1 ETH
|
|
84
|
+
data: '0x',
|
|
85
|
+
};
|
|
86
|
+
it('should send a transaction and return receipt', async () => {
|
|
87
|
+
const receipt = await wallet.send(mockTransactionData, unichain.id);
|
|
88
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenCalledWith(mockTransactionData);
|
|
89
|
+
expect(mockChainManager.getPublicClient).toHaveBeenCalledWith(unichain.id);
|
|
90
|
+
expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenCalledWith({
|
|
91
|
+
hash: mockTransactionHash,
|
|
92
|
+
});
|
|
93
|
+
expect(receipt).toBe(mockReceipt);
|
|
94
|
+
});
|
|
95
|
+
it('should create wallet client with correct chain', async () => {
|
|
96
|
+
await wallet.send(mockTransactionData, unichain.id);
|
|
97
|
+
expect(mockChainManager.getChain).toHaveBeenCalledWith(unichain.id);
|
|
98
|
+
expect(createWalletClient).toHaveBeenCalled();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('sendBatch', () => {
|
|
102
|
+
const mockTransactionData1 = {
|
|
103
|
+
to: getRandomAddress(),
|
|
104
|
+
value: 1000000000000000000n,
|
|
105
|
+
data: '0x',
|
|
106
|
+
};
|
|
107
|
+
const mockTransactionData2 = {
|
|
108
|
+
to: getRandomAddress(),
|
|
109
|
+
value: 2000000000000000000n,
|
|
110
|
+
data: '0xabcd',
|
|
111
|
+
};
|
|
112
|
+
const mockTransactionData3 = {
|
|
113
|
+
to: getRandomAddress(),
|
|
114
|
+
value: 3000000000000000000n,
|
|
115
|
+
data: '0x1234',
|
|
116
|
+
};
|
|
117
|
+
const mockReceipt2 = {
|
|
118
|
+
...mockReceipt,
|
|
119
|
+
transactionHash: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
120
|
+
};
|
|
121
|
+
const mockReceipt3 = {
|
|
122
|
+
...mockReceipt,
|
|
123
|
+
transactionHash: '0x9876543210987654321098765432109876543210987654321098765432109876',
|
|
124
|
+
};
|
|
125
|
+
beforeEach(() => {
|
|
126
|
+
vi.mocked(mockWalletClient.sendTransaction)
|
|
127
|
+
.mockResolvedValueOnce(mockReceipt.transactionHash)
|
|
128
|
+
.mockResolvedValueOnce(mockReceipt2.transactionHash)
|
|
129
|
+
.mockResolvedValueOnce(mockReceipt3.transactionHash);
|
|
130
|
+
vi.mocked(mockPublicClient.waitForTransactionReceipt)
|
|
131
|
+
.mockResolvedValueOnce(mockReceipt)
|
|
132
|
+
.mockResolvedValueOnce(mockReceipt)
|
|
133
|
+
.mockResolvedValueOnce(mockReceipt2)
|
|
134
|
+
.mockResolvedValueOnce(mockReceipt2)
|
|
135
|
+
.mockResolvedValueOnce(mockReceipt3)
|
|
136
|
+
.mockResolvedValueOnce(mockReceipt3);
|
|
137
|
+
});
|
|
138
|
+
it('should send multiple transactions sequentially', async () => {
|
|
139
|
+
const receipts = await wallet.sendBatch([mockTransactionData1, mockTransactionData2, mockTransactionData3], unichain.id);
|
|
140
|
+
expect(receipts).toHaveLength(3);
|
|
141
|
+
expect(receipts[0]).toBe(mockReceipt);
|
|
142
|
+
expect(receipts[1]).toBe(mockReceipt2);
|
|
143
|
+
expect(receipts[2]).toBe(mockReceipt3);
|
|
144
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenCalledTimes(3);
|
|
145
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(1, mockTransactionData1);
|
|
146
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(2, mockTransactionData2);
|
|
147
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenNthCalledWith(3, mockTransactionData3);
|
|
148
|
+
});
|
|
149
|
+
it('should wait for extra confirmations after each transaction', async () => {
|
|
150
|
+
await wallet.sendBatch([mockTransactionData1, mockTransactionData2], unichain.id);
|
|
151
|
+
// Should be called twice per transaction:
|
|
152
|
+
// 1. Initial wait in send()
|
|
153
|
+
// 2. Extra confirmation wait (confirmations: 2) in sendBatch()
|
|
154
|
+
expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenCalledTimes(4);
|
|
155
|
+
// Check that extra confirmation wait was called with confirmations: 2
|
|
156
|
+
expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenNthCalledWith(2, {
|
|
157
|
+
hash: mockReceipt.transactionHash,
|
|
158
|
+
confirmations: 2,
|
|
159
|
+
});
|
|
160
|
+
expect(mockPublicClient.waitForTransactionReceipt).toHaveBeenNthCalledWith(4, {
|
|
161
|
+
hash: mockReceipt2.transactionHash,
|
|
162
|
+
confirmations: 2,
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
it('should get public client for each transaction', async () => {
|
|
166
|
+
await wallet.sendBatch([mockTransactionData1, mockTransactionData2], unichain.id);
|
|
167
|
+
// Called twice per transaction (once in send, once for extra confirmation)
|
|
168
|
+
expect(mockChainManager.getPublicClient).toHaveBeenCalledTimes(4);
|
|
169
|
+
expect(mockChainManager.getPublicClient).toHaveBeenCalledWith(unichain.id);
|
|
170
|
+
});
|
|
171
|
+
it('should handle single transaction in batch', async () => {
|
|
172
|
+
const receipts = await wallet.sendBatch([mockTransactionData1], unichain.id);
|
|
173
|
+
expect(receipts).toHaveLength(1);
|
|
174
|
+
expect(receipts[0]).toBe(mockReceipt);
|
|
175
|
+
expect(mockWalletClient.sendTransaction).toHaveBeenCalledOnce();
|
|
176
|
+
});
|
|
177
|
+
it('should return empty array for empty batch', async () => {
|
|
178
|
+
const receipts = await wallet.sendBatch([], unichain.id);
|
|
179
|
+
expect(receipts).toEqual([]);
|
|
180
|
+
expect(mockWalletClient.sendTransaction).not.toHaveBeenCalled();
|
|
181
|
+
});
|
|
182
|
+
it('should maintain transaction order in results', async () => {
|
|
183
|
+
const receipts = await wallet.sendBatch([mockTransactionData1, mockTransactionData2, mockTransactionData3], unichain.id);
|
|
184
|
+
// Verify order is preserved
|
|
185
|
+
expect(receipts[0].transactionHash).toBe(mockReceipt.transactionHash);
|
|
186
|
+
expect(receipts[1].transactionHash).toBe(mockReceipt2.transactionHash);
|
|
187
|
+
expect(receipts[2].transactionHash).toBe(mockReceipt3.transactionHash);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=EOAWallet.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.spec.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
3
|
+
import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
|
|
4
|
+
import type { Asset } from '../../../../../types/asset.js';
|
|
5
|
+
import type { TransactionData } from '../../../../../types/lend/index.js';
|
|
6
|
+
import { Wallet } from '../../abstract/Wallet.js';
|
|
7
|
+
import type { Signer } from './types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Base smart wallet class
|
|
10
|
+
* @description Abstract base class for smart wallet implementations (ERC-4337 compatible wallets).
|
|
11
|
+
*/
|
|
12
|
+
export declare abstract class SmartWallet extends Wallet {
|
|
13
|
+
/**
|
|
14
|
+
* Send a transaction using this smart wallet
|
|
15
|
+
* @description Executes a transaction through the smart wallet, handling gas sponsorship
|
|
16
|
+
* and ERC-4337 UserOperation creation automatically.
|
|
17
|
+
* @param transactionData - The transaction data to execute
|
|
18
|
+
* @param chainId - Target blockchain chain ID
|
|
19
|
+
* @returns Promise resolving to the transaction hash
|
|
20
|
+
*/
|
|
21
|
+
abstract send(transactionData: TransactionData, chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
|
|
22
|
+
/**
|
|
23
|
+
* Send a batch of transactions using this smart wallet
|
|
24
|
+
* @description Executes a batch of transactions through the smart wallet, handling gas sponsorship
|
|
25
|
+
* and ERC-4337 UserOperation creation automatically.
|
|
26
|
+
* @param transactionData - The transaction data to execute
|
|
27
|
+
* @param chainId
|
|
28
|
+
*/
|
|
29
|
+
abstract sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
|
|
30
|
+
/**
|
|
31
|
+
* Add a new signer to the smart wallet
|
|
32
|
+
* @description Adds either an EOA address signer or a WebAuthn account signer
|
|
33
|
+
* to the underlying smart wallet contract.
|
|
34
|
+
* @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to add
|
|
35
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
36
|
+
* @returns Promise resolving to the onchain signer index for the newly added signer
|
|
37
|
+
* @throws Error if the add operation fails or the owner index cannot be found
|
|
38
|
+
*/
|
|
39
|
+
abstract addSigner(signer: Signer, chainId: SupportedChainId): Promise<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Remove a signer from the smart wallet
|
|
42
|
+
* @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to remove
|
|
43
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
44
|
+
* @param signerIndex - Index of the signer to remove, if not provided, it will be found by
|
|
45
|
+
* doing a lookup on the smart wallet contract.
|
|
46
|
+
* @returns Promise resolving to the receipt of the remove operation
|
|
47
|
+
*/
|
|
48
|
+
abstract removeSigner(signer: Signer, chainId: SupportedChainId, signerIndex?: number): Promise<WaitForUserOperationReceiptReturnType>;
|
|
49
|
+
/**
|
|
50
|
+
* Find the index of a signer in the smart wallet
|
|
51
|
+
* @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to find
|
|
52
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
53
|
+
* @returns Promise resolving to the onchain signer index for the found signer
|
|
54
|
+
* returns -1 if the signer is not found
|
|
55
|
+
*/
|
|
56
|
+
abstract findSignerIndexOnChain(signer: Signer, chainId: SupportedChainId): Promise<number>;
|
|
57
|
+
/**
|
|
58
|
+
* Send tokens to another address
|
|
59
|
+
* @description Prepares transaction data for sending tokens from this smart wallet
|
|
60
|
+
* to a recipient address. Returns transaction data that can be executed via send().
|
|
61
|
+
* @param amount - Amount to send in human-readable format
|
|
62
|
+
* @param asset - Asset object with address mapping and metadata
|
|
63
|
+
* @param chainId - Chain ID for the transaction
|
|
64
|
+
* @param recipientAddress - Destination address for the tokens
|
|
65
|
+
* @returns Promise resolving to prepared transaction data
|
|
66
|
+
*/
|
|
67
|
+
abstract sendTokens(amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address): Promise<TransactionData>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=SmartWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/smart/abstract/SmartWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAErF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qDAAqD,CAAA;AAEjF;;;GAGG;AACH,8BAAsB,WAAY,SAAQ,MAAM;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAChB,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9E;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,qCAAqC,CAAC;IAEjD;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAAC,eAAe,CAAC;CAC5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Wallet } from '../../abstract/Wallet.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base smart wallet class
|
|
4
|
+
* @description Abstract base class for smart wallet implementations (ERC-4337 compatible wallets).
|
|
5
|
+
*/
|
|
6
|
+
export class SmartWallet extends Wallet {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=SmartWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/smart/abstract/SmartWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAGjE;;;GAGG;AACH,MAAM,OAAgB,WAAY,SAAQ,MAAM;CA+E/C"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Address, Hex, LocalAccount, WalletClient } from 'viem';
|
|
2
|
+
import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
3
|
+
import type { SupportedChainId } from '../../../../../../constants/supportedChains.js';
|
|
4
|
+
import type { Asset } from '../../../../../../types/asset.js';
|
|
5
|
+
import type { TransactionData } from '../../../../../../types/lend/index.js';
|
|
6
|
+
import type { SmartWallet } from '../SmartWallet.js';
|
|
7
|
+
export type CreateSmartWalletMockOptions = {
|
|
8
|
+
/** Mock wallet address */
|
|
9
|
+
address?: Address;
|
|
10
|
+
/** Mock signer */
|
|
11
|
+
signer?: LocalAccount;
|
|
12
|
+
/** Custom implementation for addSigner */
|
|
13
|
+
addSignerImpl?: (owner: Address | {
|
|
14
|
+
type: 'webAuthn';
|
|
15
|
+
publicKey: Hex;
|
|
16
|
+
}, chainId: SupportedChainId) => Promise<number | void>;
|
|
17
|
+
/** Custom implementation for findSignerIndex */
|
|
18
|
+
findSignerIndexImpl?: (signer: Address | {
|
|
19
|
+
type: 'webAuthn';
|
|
20
|
+
publicKey: Hex;
|
|
21
|
+
}, chainId: SupportedChainId) => Promise<number>;
|
|
22
|
+
/** Custom implementation for removeSigner */
|
|
23
|
+
removeSignerImpl?: (signer: Address | {
|
|
24
|
+
type: 'webAuthn';
|
|
25
|
+
publicKey: Hex;
|
|
26
|
+
}, chainId: SupportedChainId, signerIndex?: number) => Promise<WaitForUserOperationReceiptReturnType>;
|
|
27
|
+
/** Custom implementation for send */
|
|
28
|
+
sendImpl?: (transactionData: TransactionData, chainId: SupportedChainId) => Promise<WaitForUserOperationReceiptReturnType>;
|
|
29
|
+
/** Custom implementation for sendBatch */
|
|
30
|
+
sendBatchImpl?: (transactionData: TransactionData[], chainId: SupportedChainId) => Promise<WaitForUserOperationReceiptReturnType>;
|
|
31
|
+
/** Optional custom walletClient implementation */
|
|
32
|
+
walletClientImpl?: (chainId: SupportedChainId) => Promise<WalletClient>;
|
|
33
|
+
/** Optional custom sendTokens implementation */
|
|
34
|
+
sendTokensImpl?: (amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address) => Promise<TransactionData>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Create a mock SmartWallet instance
|
|
38
|
+
* @description Returns an object typed as `SmartWallet` with configurable
|
|
39
|
+
* implementations for `send` and `sendBatch`. Other abstract members are
|
|
40
|
+
* provided with minimal defaults or throw if invoked (unless overridden).
|
|
41
|
+
*/
|
|
42
|
+
export declare function createMock(options?: CreateSmartWalletMockOptions): SmartWallet;
|
|
43
|
+
//# sourceMappingURL=SmartWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWallet.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACpE,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAGrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAA;AAEtF,MAAM,MAAM,4BAA4B,GAAG;IACzC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kBAAkB;IAClB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACrD,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC3B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACtD,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,GAAG,CAAA;KAAE,EACtD,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,MAAM,KACjB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CACT,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CACd,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACnD,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,gDAAgD;IAChD,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,gBAAgB,EACzB,gBAAgB,EAAE,OAAO,KACtB,OAAO,CAAC,eAAe,CAAC,CAAA;CAC9B,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE,4BAAiC,GACzC,WAAW,CAqGb"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
/**
|
|
3
|
+
* Create a mock SmartWallet instance
|
|
4
|
+
* @description Returns an object typed as `SmartWallet` with configurable
|
|
5
|
+
* implementations for `send` and `sendBatch`. Other abstract members are
|
|
6
|
+
* provided with minimal defaults or throw if invoked (unless overridden).
|
|
7
|
+
*/
|
|
8
|
+
export function createMock(options = {}) {
|
|
9
|
+
const defaultReceipt = {
|
|
10
|
+
success: true,
|
|
11
|
+
};
|
|
12
|
+
const address = (options.address ??
|
|
13
|
+
'0x0000000000000000000000000000000000000000');
|
|
14
|
+
const signer = options.signer ?? { address, type: 'local' };
|
|
15
|
+
const addSigner = vi.fn(async (owner, chainId) => {
|
|
16
|
+
if (options.addSignerImpl)
|
|
17
|
+
return options.addSignerImpl(owner, chainId);
|
|
18
|
+
return undefined;
|
|
19
|
+
});
|
|
20
|
+
const findSignerIndex = vi.fn(async (signer, chainId) => {
|
|
21
|
+
if (options.findSignerIndexImpl)
|
|
22
|
+
return options.findSignerIndexImpl(signer, chainId);
|
|
23
|
+
return -1;
|
|
24
|
+
});
|
|
25
|
+
const removeSigner = vi.fn(async (signer, chainId, signerIndex) => {
|
|
26
|
+
if (options.removeSignerImpl)
|
|
27
|
+
return options.removeSignerImpl(signer, chainId, signerIndex);
|
|
28
|
+
return defaultReceipt;
|
|
29
|
+
});
|
|
30
|
+
const send = vi.fn(async (transactionData, chainId) => {
|
|
31
|
+
if (options.sendImpl)
|
|
32
|
+
return options.sendImpl(transactionData, chainId);
|
|
33
|
+
return defaultReceipt;
|
|
34
|
+
});
|
|
35
|
+
const sendBatch = vi.fn(async (transactionData, chainId) => {
|
|
36
|
+
if (options.sendBatchImpl)
|
|
37
|
+
return options.sendBatchImpl(transactionData, chainId);
|
|
38
|
+
return defaultReceipt;
|
|
39
|
+
});
|
|
40
|
+
const walletClient = vi.fn(async (chainId) => {
|
|
41
|
+
if (options.walletClientImpl)
|
|
42
|
+
return options.walletClientImpl(chainId);
|
|
43
|
+
throw new Error('walletClient not implemented in SmartWallet mock');
|
|
44
|
+
});
|
|
45
|
+
const sendTokens = vi.fn(async (amount, asset, chainId, recipientAddress) => {
|
|
46
|
+
if (options.sendTokensImpl)
|
|
47
|
+
return options.sendTokensImpl(amount, asset, chainId, recipientAddress);
|
|
48
|
+
throw new Error('sendTokens not implemented in SmartWallet mock');
|
|
49
|
+
});
|
|
50
|
+
const mock = {
|
|
51
|
+
get address() {
|
|
52
|
+
return address;
|
|
53
|
+
},
|
|
54
|
+
get signer() {
|
|
55
|
+
return signer;
|
|
56
|
+
},
|
|
57
|
+
addSigner,
|
|
58
|
+
findSignerIndex,
|
|
59
|
+
removeSigner,
|
|
60
|
+
walletClient,
|
|
61
|
+
send,
|
|
62
|
+
sendBatch,
|
|
63
|
+
sendTokens,
|
|
64
|
+
};
|
|
65
|
+
return mock;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=SmartWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SmartWallet.js","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Address, LocalAccount, OneOf } from 'viem';
|
|
2
|
+
import type { WebAuthnAccount } from 'viem/account-abstraction';
|
|
3
|
+
/**
|
|
4
|
+
* A single signer/owner for a Smart Wallet.
|
|
5
|
+
*
|
|
6
|
+
* Can be one of three types:
|
|
7
|
+
* - **`Address`**: A plain Ethereum address (hex string like `'0x123...'`). The address itself cannot sign,
|
|
8
|
+
* but can be used as an owner identifier.
|
|
9
|
+
* - **`LocalAccount`**: A local account (e.g., from a private key or mnemonic) that can sign transactions
|
|
10
|
+
* and messages using standard ECDSA signatures.
|
|
11
|
+
* - **`WebAuthnAccount`**: A WebAuthn/passkey account that signs using the WebAuthn P256 curve,
|
|
12
|
+
* typically used for biometric authentication.
|
|
13
|
+
*
|
|
14
|
+
* The `OneOf` utility ensures that account objects are mutually exclusive - an account can be
|
|
15
|
+
* either a `LocalAccount` OR a `WebAuthnAccount`, never a hybrid with properties from both types.
|
|
16
|
+
* This prevents type confusion and ensures proper signature handling for each account type.
|
|
17
|
+
*/
|
|
18
|
+
export type Signer = Address | OneOf<LocalAccount | WebAuthnAccount>;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,YAAY,GAAG,eAAe,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/wallet/core/wallets/smart/abstract/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type { Address, Hex, LocalAccount } from 'viem';
|
|
2
|
+
import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
3
|
+
import { toCoinbaseSmartAccount } from 'viem/account-abstraction';
|
|
4
|
+
import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
|
|
5
|
+
import type { ChainManager } from '../../../../../services/ChainManager.js';
|
|
6
|
+
import type { Asset } from '../../../../../types/asset.js';
|
|
7
|
+
import type { LendConfig, LendProvider, TransactionData } from '../../../../../types/lend/index.js';
|
|
8
|
+
import { SmartWallet } from '../abstract/SmartWallet.js';
|
|
9
|
+
import type { Signer } from '../abstract/types/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Smart Wallet Implementation
|
|
12
|
+
* @description ERC-4337 compatible smart wallet that uses Coinbase Smart Account (https://github.com/coinbase/smart-wallet/blob/main/src/CoinbaseSmartWallet.sol).
|
|
13
|
+
* Supports multi-owner wallets, gasless transactions via paymasters, and cross-chain operations.
|
|
14
|
+
*/
|
|
15
|
+
export declare class DefaultSmartWallet extends SmartWallet {
|
|
16
|
+
/** Local account used for signing transactions and UserOperations */
|
|
17
|
+
readonly signer: LocalAccount;
|
|
18
|
+
/** Address of the smart wallet */
|
|
19
|
+
private _address;
|
|
20
|
+
/** Array of wallet signers */
|
|
21
|
+
private signers;
|
|
22
|
+
/** Index of this.signer in this.signers array */
|
|
23
|
+
private signerIndex;
|
|
24
|
+
/** Known deployment address of the wallet (if already deployed) */
|
|
25
|
+
private deploymentAddress?;
|
|
26
|
+
/** Nonce used for deterministic address generation (defaults to 0) */
|
|
27
|
+
private nonce?;
|
|
28
|
+
/** Optional 16-byte attribution suffix appended to callData */
|
|
29
|
+
private attributionSuffix?;
|
|
30
|
+
/**
|
|
31
|
+
* Create a Smart Wallet instance
|
|
32
|
+
* @param owners - Array of wallet owners (addresses or WebAuthn accounts)
|
|
33
|
+
* @param signer - Local account for signing transactions
|
|
34
|
+
* @param chainManager - Network management service
|
|
35
|
+
* @param lendProvider - Lending operations provider
|
|
36
|
+
* @param deploymentAddress - Known wallet address (if already deployed)
|
|
37
|
+
* @param ownerIndex - Index of signer in owners array
|
|
38
|
+
* @param nonce - Nonce for address generation
|
|
39
|
+
*/
|
|
40
|
+
private constructor();
|
|
41
|
+
get address(): `0x${string}`;
|
|
42
|
+
/**
|
|
43
|
+
* Get the formatted owner bytes for smart wallet operations
|
|
44
|
+
* @description Converts the wallet's owners array into the bytes format expected by the smart wallet
|
|
45
|
+
* factory and contract. EOA addresses are padded to 32 bytes, LocalAccount addresses are extracted and padded,
|
|
46
|
+
* and WebAuthn public keys are passed through.
|
|
47
|
+
* @returns Array of 32-byte formatted owner identifiers
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
get _signerBytes(): `0x${string}`[];
|
|
51
|
+
static create(params: {
|
|
52
|
+
signer: LocalAccount;
|
|
53
|
+
chainManager: ChainManager;
|
|
54
|
+
signers?: Signer[];
|
|
55
|
+
lendProvider?: LendProvider<LendConfig>;
|
|
56
|
+
deploymentAddress?: Address;
|
|
57
|
+
nonce?: bigint;
|
|
58
|
+
attributionSuffix?: Hex;
|
|
59
|
+
}): Promise<DefaultSmartWallet>;
|
|
60
|
+
/**
|
|
61
|
+
* Ensures the LocalAccount signer is present in the signers array for signing operations.
|
|
62
|
+
* This is needed because the toCoinbaseSmartAccount requires two things:
|
|
63
|
+
* 1. The signers array to contain the signer (LocalAccount).
|
|
64
|
+
* 2. The index that the signer is at in the signers array.
|
|
65
|
+
*
|
|
66
|
+
*
|
|
67
|
+
* Another benefit of this is that it allows flexible constructor arguments because it can take a mix
|
|
68
|
+
* of public keys/addresses or LocalAccounts.
|
|
69
|
+
* Searches for the signer's public key in the array and replaces that entry with the LocalAccount.
|
|
70
|
+
* If the LocalAccount is already at that index, this is a no-op.
|
|
71
|
+
* @param signers - Array of signers (addresses, LocalAccounts, or WebAuthnAccounts)
|
|
72
|
+
* @param signer - LocalAccount that will sign transactions
|
|
73
|
+
* @returns The signers array with LocalAccount at the correct index, and that index
|
|
74
|
+
* @throws Error if signer's public key is not found in the signers array
|
|
75
|
+
*/
|
|
76
|
+
private static ensureLocalAccountSigner;
|
|
77
|
+
/**
|
|
78
|
+
* Checks if a 16-byte attribution suffix is valid
|
|
79
|
+
* @description Checks if the suffix is a valid hex string and is exactly 16 bytes
|
|
80
|
+
* @throws Error if suffix is not hex or is not exactly 16 bytes
|
|
81
|
+
*/
|
|
82
|
+
private static isValidAttributionSuffix;
|
|
83
|
+
/**
|
|
84
|
+
* Create a Coinbase Smart Account instance
|
|
85
|
+
* @description Converts this wallet into a viem-compatible smart account for ERC-4337 operations.
|
|
86
|
+
* @param chainId - Target blockchain network ID
|
|
87
|
+
* @returns Coinbase Smart Account instance configured for the specified chain
|
|
88
|
+
*/
|
|
89
|
+
getCoinbaseSmartAccount(chainId: SupportedChainId): ReturnType<typeof toCoinbaseSmartAccount>;
|
|
90
|
+
/**
|
|
91
|
+
* Send a batch of transactions using this smart wallet
|
|
92
|
+
* @description Executes a batch of transactions through the smart wallet, handling gas sponsorship
|
|
93
|
+
* and ERC-4337 UserOperation creation automatically.
|
|
94
|
+
* @param transactionData - The transaction data to execute
|
|
95
|
+
* @param chainId - Target blockchain chain ID
|
|
96
|
+
* @returns Promise resolving to the transaction hash
|
|
97
|
+
*/
|
|
98
|
+
sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
|
|
99
|
+
/**
|
|
100
|
+
* Send a transaction via ERC-4337
|
|
101
|
+
* @description Executes a transaction using the smart wallet with automatic gas sponsorship.
|
|
102
|
+
* The transaction is sent as a UserOperation through the bundler service.
|
|
103
|
+
* @param transactionData - Transaction details (to, value, data)
|
|
104
|
+
* @param chainId - Target blockchain network ID
|
|
105
|
+
* @returns Promise resolving to UserOperation hash
|
|
106
|
+
* @throws Error if transaction fails or validation errors occur
|
|
107
|
+
*/
|
|
108
|
+
send(transactionData: TransactionData, chainId: SupportedChainId): Promise<WaitForUserOperationReceiptReturnType>;
|
|
109
|
+
/**
|
|
110
|
+
* Add a new signer to the smart wallet
|
|
111
|
+
* @description Adds either an EOA address signer or a WebAuthn account signer
|
|
112
|
+
* to the underlying smart wallet contract. For WebAuthn accounts, the method
|
|
113
|
+
* extracts the x and y coordinates from the provided 64-byte public key and
|
|
114
|
+
* calls the contract's `addOwnerPublicKey`. For EOA addresses it calls
|
|
115
|
+
* `addOwnerAddress`. The add operation is sent as a UserOperation via
|
|
116
|
+
* {@link sendBatch}, and upon success the method queries the contract to
|
|
117
|
+
* resolve the signer's index.
|
|
118
|
+
* @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to add
|
|
119
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
120
|
+
* @returns Promise resolving to the onchain signer index for the newly added signer
|
|
121
|
+
* @throws Error if the add operation fails or the owner index cannot be found
|
|
122
|
+
*/
|
|
123
|
+
addSigner(signer: Signer, chainId: SupportedChainId): Promise<number>;
|
|
124
|
+
/**
|
|
125
|
+
* Remove an existing signer from the smart wallet
|
|
126
|
+
* @description Removes a signer (EOA address or WebAuthn public key) from the
|
|
127
|
+
* smart wallet contract. If `signerIndex` is not provided, the method resolves
|
|
128
|
+
* it via {@link findSignerIndexOnChain}. The removal is executed via {@link sendBatch}
|
|
129
|
+
* by calling the contract function `removeOwnerAtIndex(index, signerBytes)`.
|
|
130
|
+
* Returns the ERC-4337 UserOperation receipt on success.
|
|
131
|
+
* @param signer - Signer to remove: EOA address or `WebAuthnAccount`
|
|
132
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
133
|
+
* @param signerIndex - Optional known on-chain index of the signer (skips lookup when provided)
|
|
134
|
+
* @returns Promise resolving to the UserOperation receipt for the removal
|
|
135
|
+
* @throws Error if the signer index cannot be found or the removal operation fails
|
|
136
|
+
*/
|
|
137
|
+
removeSigner(signer: Signer, chainId: SupportedChainId, signerIndex?: number): Promise<WaitForUserOperationReceiptReturnType>;
|
|
138
|
+
/**
|
|
139
|
+
* Find the index of a signer in the smart wallet
|
|
140
|
+
* @param signer - Ethereum address (EOA) or a `WebAuthnAccount` to find
|
|
141
|
+
* @param chainId - Target chain on which the smart wallet operates
|
|
142
|
+
* @returns Promise resolving to the onchain signer index for the found signer
|
|
143
|
+
* returns -1 if the signer is not found
|
|
144
|
+
*/
|
|
145
|
+
findSignerIndexOnChain(signer: Signer, chainId: SupportedChainId): Promise<number>;
|
|
146
|
+
/**
|
|
147
|
+
* Deploy the smart wallet on a specific chain
|
|
148
|
+
* @description Triggers deployment of the smart wallet contract on the specified chain.
|
|
149
|
+
* If the wallet is already deployed, returns success immediately without creating a new transaction.
|
|
150
|
+
* Deployment is done by calling the factory's `createAccount` function, which is idempotent and will
|
|
151
|
+
* return the existing address if already deployed. The factory address is a fixed address that can be
|
|
152
|
+
* added to paymaster allowlists once, avoiding the need to allowlist each dynamically created wallet.
|
|
153
|
+
* @param chainId - Target chain ID to deploy the wallet on
|
|
154
|
+
* @returns Promise resolving to deployment result containing:
|
|
155
|
+
* - `chainId`: The chain ID where deployment was attempted
|
|
156
|
+
* - `success`: Whether the deployment succeeded
|
|
157
|
+
* - `receipt`: UserOperation receipt (undefined if wallet was already deployed)
|
|
158
|
+
* @throws {SmartWalletDeploymentError} If deployment fails or transaction reverts
|
|
159
|
+
*/
|
|
160
|
+
deploy(chainId: SupportedChainId): Promise<{
|
|
161
|
+
chainId: SupportedChainId;
|
|
162
|
+
success: boolean;
|
|
163
|
+
receipt?: WaitForUserOperationReceiptReturnType;
|
|
164
|
+
}>;
|
|
165
|
+
/**
|
|
166
|
+
* Send tokens to another address
|
|
167
|
+
* @description Sends ETH or ERC20 tokens to a recipient address
|
|
168
|
+
* @param amount - Human-readable amount to send (e.g. 1.5)
|
|
169
|
+
* @param asset - Asset object with address mapping and metadata
|
|
170
|
+
* @param chainId - Chain ID for the transaction
|
|
171
|
+
* @param recipientAddress - Address to send to
|
|
172
|
+
* @returns Promise resolving to transaction data
|
|
173
|
+
* @throws Error if wallet is not initialized or asset is not supported
|
|
174
|
+
*/
|
|
175
|
+
sendTokens(amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address): Promise<TransactionData>;
|
|
176
|
+
protected performInitialization(): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Get the smart wallet address
|
|
179
|
+
* @description Returns the deployment address if known, otherwise calculates the deterministic
|
|
180
|
+
* address using CREATE2 based on signers and nonce.
|
|
181
|
+
* @returns Promise resolving to the wallet address
|
|
182
|
+
*/
|
|
183
|
+
private getAddress;
|
|
184
|
+
/**
|
|
185
|
+
* Appends the attribution suffix to the bytes
|
|
186
|
+
* @param bytes
|
|
187
|
+
* @returns The bytes with the attribution suffix appended
|
|
188
|
+
*/
|
|
189
|
+
private appendAttributionSuffix;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=DefaultSmartWallet.d.ts.map
|