@eth-optimism/actions-sdk 0.0.2
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,96 @@
|
|
|
1
|
+
import type { Address, LocalAccount } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../../constants/supportedChains.js';
|
|
3
|
+
import { WalletLendNamespace } from '../../../../lend/namespaces/WalletLendNamespace.js';
|
|
4
|
+
import type { ChainManager } from '../../../../services/ChainManager.js';
|
|
5
|
+
import type { TokenBalance } from '../../../../types/asset.js';
|
|
6
|
+
import type { BaseLendConfig, LendConfig, LendProvider, TransactionData } from '../../../../types/lend/index.js';
|
|
7
|
+
import type { BatchTransactionReturnType, TransactionReturnType } from './types/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Base actions wallet class
|
|
10
|
+
* @description Abstract base class for actions wallet implementations.
|
|
11
|
+
* Provides a standard interface for actions wallets.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class Wallet {
|
|
14
|
+
/** Lend namespace with all lending operations */
|
|
15
|
+
lend?: WalletLendNamespace<BaseLendConfig>;
|
|
16
|
+
/** Provider for lending market operations */
|
|
17
|
+
protected lendProvider?: LendProvider<LendConfig>;
|
|
18
|
+
/** Manages supported blockchain networks and RPC clients */
|
|
19
|
+
protected chainManager: ChainManager;
|
|
20
|
+
/** Promise to initialize the wallet */
|
|
21
|
+
private initPromise?;
|
|
22
|
+
/**
|
|
23
|
+
* Get the address of this actions wallet
|
|
24
|
+
* @description Returns the address of the actions wallet.
|
|
25
|
+
* @returns The address of the actions wallet.
|
|
26
|
+
*/
|
|
27
|
+
abstract readonly address: Address;
|
|
28
|
+
/**
|
|
29
|
+
* Get a signer for this actions wallet
|
|
30
|
+
* @description Returns a LocalAccount that can be used to sign transactions and messages.
|
|
31
|
+
* This can be used as the signer for smart wallet operations if the signer is an
|
|
32
|
+
* owner on the smart wallet.
|
|
33
|
+
* @returns Promise resolving to a LocalAccount configured for signing operations
|
|
34
|
+
*/
|
|
35
|
+
abstract readonly signer: LocalAccount;
|
|
36
|
+
/**
|
|
37
|
+
* Create a new wallet
|
|
38
|
+
* @param chainManager - Chain manager for the wallet
|
|
39
|
+
* @param lendProvider - Lend provider for the wallet
|
|
40
|
+
*/
|
|
41
|
+
protected constructor(chainManager: ChainManager, lendProvider?: LendProvider<LendConfig>);
|
|
42
|
+
/**
|
|
43
|
+
* Get asset balances across all supported chains
|
|
44
|
+
* @description Fetches ETH and ERC20 token balances for this wallet across all supported networks.
|
|
45
|
+
* @returns Promise resolving to array of token balances with chain breakdown
|
|
46
|
+
*/
|
|
47
|
+
getBalance(): Promise<TokenBalance[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Perform subclass-specific one-time initialization
|
|
50
|
+
* @description Hook for concrete wallet implementations to perform their
|
|
51
|
+
* required setup (e.g., compute and cache address, create signer/account,
|
|
52
|
+
* warm caches). This method is invoked by {@link initialize} and should not
|
|
53
|
+
* be called directly by consumers.
|
|
54
|
+
*
|
|
55
|
+
* Implementations should set all internal state required for public methods
|
|
56
|
+
* to operate safely after initialization completes, and should throw on
|
|
57
|
+
* failure so {@link initialize} can surface the error to callers.
|
|
58
|
+
*
|
|
59
|
+
* Note: This hook is expected to be idempotent in effect when called via
|
|
60
|
+
* {@link initialize}, which guarantees concurrency-safety and ensures it is
|
|
61
|
+
* executed at most once per instance.
|
|
62
|
+
* @returns Promise that resolves when initialization work is complete
|
|
63
|
+
*/
|
|
64
|
+
protected performInitialization(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Initialize the wallet (idempotent and concurrency-safe)
|
|
67
|
+
* @description Public-facing initialization entrypoint used internally by
|
|
68
|
+
* factories/providers and defensively by public methods. If initialization is
|
|
69
|
+
* already in-flight or completed, subsequent calls will await the same
|
|
70
|
+
* promise, preventing duplicate work and race conditions.
|
|
71
|
+
*
|
|
72
|
+
* On failure, the stored promise is cleared so callers may retry
|
|
73
|
+
* initialization later.
|
|
74
|
+
* @returns Promise that resolves once the wallet is fully initialized
|
|
75
|
+
* @throws Error wrapping the underlying failure cause from
|
|
76
|
+
* {@link performInitialization}
|
|
77
|
+
*/
|
|
78
|
+
protected initialize(): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Send a transaction using this actions wallet
|
|
81
|
+
* @description Executes a transaction through the actions wallet.
|
|
82
|
+
* @param transactionData - The transaction data to execute
|
|
83
|
+
* @param chainId - Target blockchain chain ID
|
|
84
|
+
* @returns Promise resolving to the transaction hash
|
|
85
|
+
*/
|
|
86
|
+
abstract send(transactionData: TransactionData, chainId: SupportedChainId): Promise<TransactionReturnType>;
|
|
87
|
+
/**
|
|
88
|
+
* Send a batch of transactions using this actions wallet
|
|
89
|
+
* @description Executes a batch of transactions through the actions wallet.
|
|
90
|
+
* @param transactionData - The transaction data to execute
|
|
91
|
+
* @param chainId - Target blockchain chain ID
|
|
92
|
+
* @returns Promise resolving to the transaction hash
|
|
93
|
+
*/
|
|
94
|
+
abstract sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<BatchTransactionReturnType>;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=Wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../../../src/wallet/core/wallets/abstract/Wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,+CAA+C,CAAA;AAEtD;;;;GAIG;AACH,8BAAsB,MAAM;IAC1B,iDAAiD;IACjD,IAAI,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAC1C,6CAA6C;IAC7C,SAAS,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;IACjD,4DAA4D;IAC5D,SAAS,CAAC,YAAY,EAAE,YAAY,CAAA;IACpC,uCAAuC;IACvC,OAAO,CAAC,WAAW,CAAC,CAAe;IAEnC;;;;OAIG;IACH,kBAAyB,OAAO,EAAE,OAAO,CAAA;IACzC;;;;;;OAMG;IACH,kBAAyB,MAAM,EAAE,YAAY,CAAA;IAE7C;;;;OAIG;IACH,SAAS,aACP,YAAY,EAAE,YAAY,EAC1B,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC;IASzC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAU3C;;;;;;;;;;;;;;;OAeG;cACa,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtD;;;;;;;;;;;;OAYG;cACa,UAAU;IAc1B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CACX,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qBAAqB,CAAC;IAEjC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAChB,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,0BAA0B,CAAC;CACvC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { WalletLendNamespace } from '../../../../lend/namespaces/WalletLendNamespace.js';
|
|
2
|
+
import { fetchERC20Balance, fetchETHBalance } from '../../../../services/tokenBalance.js';
|
|
3
|
+
import { SUPPORTED_TOKENS } from '../../../../supported/tokens.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base actions wallet class
|
|
6
|
+
* @description Abstract base class for actions wallet implementations.
|
|
7
|
+
* Provides a standard interface for actions wallets.
|
|
8
|
+
*/
|
|
9
|
+
export class Wallet {
|
|
10
|
+
/**
|
|
11
|
+
* Create a new wallet
|
|
12
|
+
* @param chainManager - Chain manager for the wallet
|
|
13
|
+
* @param lendProvider - Lend provider for the wallet
|
|
14
|
+
*/
|
|
15
|
+
constructor(chainManager, lendProvider) {
|
|
16
|
+
this.chainManager = chainManager;
|
|
17
|
+
this.lendProvider = lendProvider;
|
|
18
|
+
if (this.lendProvider) {
|
|
19
|
+
this.lend = new WalletLendNamespace(this.lendProvider, this);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get asset balances across all supported chains
|
|
24
|
+
* @description Fetches ETH and ERC20 token balances for this wallet across all supported networks.
|
|
25
|
+
* @returns Promise resolving to array of token balances with chain breakdown
|
|
26
|
+
*/
|
|
27
|
+
async getBalance() {
|
|
28
|
+
// TEMPORARY - will use optimism token list eventually
|
|
29
|
+
const tokenBalancePromises = SUPPORTED_TOKENS.map(async (asset) => {
|
|
30
|
+
return fetchERC20Balance(this.chainManager, this.address, asset);
|
|
31
|
+
});
|
|
32
|
+
const ethBalancePromise = fetchETHBalance(this.chainManager, this.address);
|
|
33
|
+
return Promise.all([ethBalancePromise, ...tokenBalancePromises]);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Perform subclass-specific one-time initialization
|
|
37
|
+
* @description Hook for concrete wallet implementations to perform their
|
|
38
|
+
* required setup (e.g., compute and cache address, create signer/account,
|
|
39
|
+
* warm caches). This method is invoked by {@link initialize} and should not
|
|
40
|
+
* be called directly by consumers.
|
|
41
|
+
*
|
|
42
|
+
* Implementations should set all internal state required for public methods
|
|
43
|
+
* to operate safely after initialization completes, and should throw on
|
|
44
|
+
* failure so {@link initialize} can surface the error to callers.
|
|
45
|
+
*
|
|
46
|
+
* Note: This hook is expected to be idempotent in effect when called via
|
|
47
|
+
* {@link initialize}, which guarantees concurrency-safety and ensures it is
|
|
48
|
+
* executed at most once per instance.
|
|
49
|
+
* @returns Promise that resolves when initialization work is complete
|
|
50
|
+
*/
|
|
51
|
+
async performInitialization() { }
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the wallet (idempotent and concurrency-safe)
|
|
54
|
+
* @description Public-facing initialization entrypoint used internally by
|
|
55
|
+
* factories/providers and defensively by public methods. If initialization is
|
|
56
|
+
* already in-flight or completed, subsequent calls will await the same
|
|
57
|
+
* promise, preventing duplicate work and race conditions.
|
|
58
|
+
*
|
|
59
|
+
* On failure, the stored promise is cleared so callers may retry
|
|
60
|
+
* initialization later.
|
|
61
|
+
* @returns Promise that resolves once the wallet is fully initialized
|
|
62
|
+
* @throws Error wrapping the underlying failure cause from
|
|
63
|
+
* {@link performInitialization}
|
|
64
|
+
*/
|
|
65
|
+
async initialize() {
|
|
66
|
+
if (this.initPromise)
|
|
67
|
+
return this.initPromise;
|
|
68
|
+
this.initPromise = (async () => {
|
|
69
|
+
try {
|
|
70
|
+
await this.performInitialization();
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// Clear cached promise to allow retry after a failure
|
|
74
|
+
this.initPromise = undefined;
|
|
75
|
+
throw new Error('Failed to initialize wallet', { cause: error });
|
|
76
|
+
}
|
|
77
|
+
})();
|
|
78
|
+
return this.initPromise;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=Wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../../../../src/wallet/core/wallets/abstract/Wallet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAE9E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAaxD;;;;GAIG;AACH,MAAM,OAAgB,MAAM;IAyB1B;;;;OAIG;IACH,YACE,YAA0B,EAC1B,YAAuC;QAEvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,sDAAsD;QACtD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAChE,OAAO,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QACF,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAE1E,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAA;IAClE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACO,KAAK,CAAC,qBAAqB,KAAmB,CAAC;IAEzD;;;;;;;;;;;;OAYG;IACO,KAAK,CAAC,UAAU;QACxB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAA;QAC7C,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sDAAsD;gBACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;gBAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAClE,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;CAyBF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Address, LocalAccount, WalletClient } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
|
|
3
|
+
import type { ChainManager } from '../../../../../services/ChainManager.js';
|
|
4
|
+
import type { TransactionData } from '../../../../../types/lend/index.js';
|
|
5
|
+
import type { EOATransactionReceipt } from '../types/index.js';
|
|
6
|
+
import { Wallet } from '../Wallet.js';
|
|
7
|
+
export declare class TestWallet extends Wallet {
|
|
8
|
+
readonly address: Address;
|
|
9
|
+
readonly signer: LocalAccount;
|
|
10
|
+
constructor(chainManager: ChainManager, address: Address, signer: LocalAccount);
|
|
11
|
+
walletClient(_chainId: SupportedChainId): Promise<WalletClient>;
|
|
12
|
+
send(_transactionData: TransactionData, _chainId: SupportedChainId): Promise<EOATransactionReceipt>;
|
|
13
|
+
sendBatch(_transactionData: TransactionData[], _chainId: SupportedChainId): Promise<EOATransactionReceipt[]>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TestWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEjE,qBAAa,UAAW,SAAQ,MAAM;IACpC,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,SAAgB,MAAM,EAAE,YAAY,CAAA;gBAGlC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY;IAOhB,YAAY,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,IAAI,CACR,gBAAgB,EAAE,eAAe,EACjC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;IAI3B,SAAS,CACb,gBAAgB,EAAE,eAAe,EAAE,EACnC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAGpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Wallet } from '../Wallet.js';
|
|
2
|
+
export class TestWallet extends Wallet {
|
|
3
|
+
constructor(chainManager, address, signer) {
|
|
4
|
+
super(chainManager);
|
|
5
|
+
this.address = address;
|
|
6
|
+
this.signer = signer;
|
|
7
|
+
}
|
|
8
|
+
async walletClient(_chainId) {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
async send(_transactionData, _chainId) {
|
|
12
|
+
return {};
|
|
13
|
+
}
|
|
14
|
+
async sendBatch(_transactionData, _chainId) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TestWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEjE,MAAM,OAAO,UAAW,SAAQ,MAAM;IAIpC,YACE,YAA0B,EAC1B,OAAgB,EAChB,MAAoB;QAEpB,KAAK,CAAC,YAAY,CAAC,CAAA;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA0B;QAC3C,OAAO,EAA6B,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,gBAAiC,EACjC,QAA0B;QAE1B,OAAO,EAAsC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,gBAAmC,EACnC,QAA0B;QAE1B,OAAO,EAAwC,CAAA;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { unichain } from 'viem/chains';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { fetchERC20Balance, fetchETHBalance } from '../../../../../services/tokenBalance.js';
|
|
4
|
+
import { SUPPORTED_TOKENS } from '../../../../../supported/tokens.js';
|
|
5
|
+
import { MockChainManager } from '../../../../../test/MockChainManager.js';
|
|
6
|
+
import { getRandomAddress } from '../../../../../test/utils.js';
|
|
7
|
+
import { TestWallet } from '../__mocks__/TestWallet.js';
|
|
8
|
+
vi.mock('@/services/tokenBalance.js', async () => {
|
|
9
|
+
return {
|
|
10
|
+
fetchETHBalance: vi.fn().mockResolvedValue({}),
|
|
11
|
+
fetchERC20Balance: vi.fn().mockResolvedValue({}),
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
describe('Wallet (base)', () => {
|
|
15
|
+
const chainManager = new MockChainManager({
|
|
16
|
+
supportedChains: [unichain.id],
|
|
17
|
+
});
|
|
18
|
+
const address = getRandomAddress();
|
|
19
|
+
const signer = { address };
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
vi.clearAllMocks();
|
|
22
|
+
});
|
|
23
|
+
it('getBalance fetches ETH and ERC20 balances for all supported tokens', async () => {
|
|
24
|
+
const wallet = new TestWallet(chainManager, address, signer);
|
|
25
|
+
const result = await wallet.getBalance();
|
|
26
|
+
expect(result).toBeTruthy();
|
|
27
|
+
expect(fetchETHBalance).toHaveBeenCalledTimes(1);
|
|
28
|
+
expect(fetchETHBalance).toHaveBeenCalledWith(chainManager, address);
|
|
29
|
+
// Should call fetchERC20Balance for each token in SUPPORTED_TOKENS
|
|
30
|
+
expect(fetchERC20Balance).toHaveBeenCalledTimes(Object.keys(SUPPORTED_TOKENS).length);
|
|
31
|
+
});
|
|
32
|
+
it('getBalance propagates errors from underlying fetchers', async () => {
|
|
33
|
+
vi.mocked(fetchETHBalance).mockRejectedValueOnce(new Error('rpc error'));
|
|
34
|
+
const wallet = new TestWallet(chainManager, address, signer);
|
|
35
|
+
await expect(wallet.getBalance()).rejects.toThrow('rpc error');
|
|
36
|
+
});
|
|
37
|
+
it('has lend namespace available for inheritance', () => {
|
|
38
|
+
const wallet = new TestWallet(chainManager, address, signer);
|
|
39
|
+
wallet.lend = {};
|
|
40
|
+
expect(wallet.lend).toBeDefined();
|
|
41
|
+
expect(wallet.lend).toEqual({});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=Wallet.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.spec.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAI7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wDAAwD,CAAA;AAEnF,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC/C,OAAO;QACL,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAa,CAAC;QACzD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAa,CAAC;KAC5D,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC;QACxC,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC/B,CAA4B,CAAA;IAE7B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,EAAE,OAAO,EAA6B,CAAA;IAErD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE5D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QAExC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAA;QAC3B,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QACnE,mEAAmE;QACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAC7C,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACrC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;QAExE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE5D,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE5D,MAAM,CAAC,IAAI,GAAG,EAAyB,CAAA;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TransactionReceipt } from 'viem';
|
|
2
|
+
import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstraction';
|
|
3
|
+
/**
|
|
4
|
+
* Transaction receipt for EOA (Externally Owned Account) transactions.
|
|
5
|
+
*
|
|
6
|
+
* Standard Ethereum transaction receipt from regular transactions sent by EOA wallets.
|
|
7
|
+
*/
|
|
8
|
+
export type EOATransactionReceipt = TransactionReceipt<bigint, number, 'success' | 'reverted'>;
|
|
9
|
+
/**
|
|
10
|
+
* Transaction receipt for ERC-4337 UserOperations.
|
|
11
|
+
*
|
|
12
|
+
* Receipt from smart wallet transactions processed through bundlers.
|
|
13
|
+
* Contains `userOpHash` to identify the UserOperation.
|
|
14
|
+
*/
|
|
15
|
+
export type UserOperationTransactionReceipt = WaitForUserOperationReceiptReturnType;
|
|
16
|
+
/**
|
|
17
|
+
* Return type for single transaction operations.
|
|
18
|
+
*
|
|
19
|
+
* Can be either an EOA transaction receipt or a UserOperation receipt,
|
|
20
|
+
* depending on the wallet type used.
|
|
21
|
+
*/
|
|
22
|
+
export type TransactionReturnType = EOATransactionReceipt | UserOperationTransactionReceipt;
|
|
23
|
+
/**
|
|
24
|
+
* Return type for batch transaction operations.
|
|
25
|
+
*
|
|
26
|
+
* EOA wallets return an array of receipts (one per transaction), while
|
|
27
|
+
* smart wallets return a single UserOperation receipt for the entire batch.
|
|
28
|
+
*/
|
|
29
|
+
export type BatchTransactionReturnType = EOATransactionReceipt[] | UserOperationTransactionReceipt;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAErF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CACpD,MAAM,EACN,MAAM,EACN,SAAS,GAAG,UAAU,CACvB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,+BAA+B,GACzC,qCAAqC,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,+BAA+B,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,EAAE,GACvB,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/abstract/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Chain, FallbackTransport, HttpTransport, LocalAccount, WalletClient } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../../constants/supportedChains.js';
|
|
3
|
+
import type { TransactionData } from '../../../../types/lend/index.js';
|
|
4
|
+
import type { EOATransactionReceipt } from '../abstract/types/index.js';
|
|
5
|
+
import { Wallet } from '../abstract/Wallet.js';
|
|
6
|
+
/**
|
|
7
|
+
* Base class for Externally Owned Account (EOA) wallets.
|
|
8
|
+
*
|
|
9
|
+
* EOA wallets send standard Ethereum transactions signed by a private key,
|
|
10
|
+
* without using ERC-4337 account abstraction features (bundlers, UserOperations, paymasters).
|
|
11
|
+
* Transactions are submitted directly to the network and processed by validators.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class EOAWallet extends Wallet {
|
|
14
|
+
/**
|
|
15
|
+
* Create a WalletClient for this EOA wallet.
|
|
16
|
+
*
|
|
17
|
+
* Creates a viem-compatible WalletClient configured with this wallet's account
|
|
18
|
+
* and the specified chain. Supports fallback transport for multiple RPC URLs.
|
|
19
|
+
* @param chainId - The chain ID to create the wallet client for
|
|
20
|
+
* @returns Promise resolving to a WalletClient configured for the specified chain
|
|
21
|
+
*/
|
|
22
|
+
walletClient(chainId: SupportedChainId): Promise<WalletClient<HttpTransport<undefined, false> | FallbackTransport<Array<HttpTransport<undefined, false>>>, Chain, LocalAccount, [
|
|
23
|
+
]>>;
|
|
24
|
+
/**
|
|
25
|
+
* Send a single transaction from this EOA wallet.
|
|
26
|
+
*
|
|
27
|
+
* Creates a wallet client, sends the transaction, and waits for the receipt.
|
|
28
|
+
* @param transactionData - Transaction to send (to, value, data, etc.)
|
|
29
|
+
* @param chainId - Chain to send the transaction on
|
|
30
|
+
* @returns Promise resolving to the transaction receipt
|
|
31
|
+
*/
|
|
32
|
+
send(transactionData: TransactionData, chainId: SupportedChainId): Promise<EOATransactionReceipt>;
|
|
33
|
+
/**
|
|
34
|
+
* Send multiple transactions sequentially from this EOA wallet.
|
|
35
|
+
*
|
|
36
|
+
* Executes transactions one at a time in order, waiting for 2 confirmations
|
|
37
|
+
* between each to ensure nonce updates. Returns an array of receipts.
|
|
38
|
+
* @param transactionData - Array of transactions to send
|
|
39
|
+
* @param chainId - Chain to send the transactions on
|
|
40
|
+
* @returns Promise resolving to array of transaction receipts (one per transaction)
|
|
41
|
+
*/
|
|
42
|
+
sendBatch(transactionData: TransactionData[], chainId: SupportedChainId): Promise<EOATransactionReceipt[]>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=EOAWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.d.ts","sourceRoot":"","sources":["../../../../../src/wallet/core/wallets/eoa/EOAWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEjE;;;;;;GAMG;AACH,8BAAsB,SAAU,SAAQ,MAAM;IAC5C;;;;;;;OAOG;IACG,YAAY,CAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CACR,YAAY,CACR,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,GAC/B,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAC3D,KAAK,EACL,YAAY,EACZ;KAAE,CACH,CACF;IAQD;;;;;;;OAOG;IACG,IAAI,CACR,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;;;;;;;OAQG;IACG,SAAS,CACb,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAcpC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { createWalletClient } from 'viem';
|
|
2
|
+
import { Wallet } from '../abstract/Wallet.js';
|
|
3
|
+
/**
|
|
4
|
+
* Base class for Externally Owned Account (EOA) wallets.
|
|
5
|
+
*
|
|
6
|
+
* EOA wallets send standard Ethereum transactions signed by a private key,
|
|
7
|
+
* without using ERC-4337 account abstraction features (bundlers, UserOperations, paymasters).
|
|
8
|
+
* Transactions are submitted directly to the network and processed by validators.
|
|
9
|
+
*/
|
|
10
|
+
export class EOAWallet extends Wallet {
|
|
11
|
+
/**
|
|
12
|
+
* Create a WalletClient for this EOA wallet.
|
|
13
|
+
*
|
|
14
|
+
* Creates a viem-compatible WalletClient configured with this wallet's account
|
|
15
|
+
* and the specified chain. Supports fallback transport for multiple RPC URLs.
|
|
16
|
+
* @param chainId - The chain ID to create the wallet client for
|
|
17
|
+
* @returns Promise resolving to a WalletClient configured for the specified chain
|
|
18
|
+
*/
|
|
19
|
+
async walletClient(chainId) {
|
|
20
|
+
return createWalletClient({
|
|
21
|
+
account: this.signer,
|
|
22
|
+
chain: this.chainManager.getChain(chainId),
|
|
23
|
+
transport: this.chainManager.getTransportForChain(chainId),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Send a single transaction from this EOA wallet.
|
|
28
|
+
*
|
|
29
|
+
* Creates a wallet client, sends the transaction, and waits for the receipt.
|
|
30
|
+
* @param transactionData - Transaction to send (to, value, data, etc.)
|
|
31
|
+
* @param chainId - Chain to send the transaction on
|
|
32
|
+
* @returns Promise resolving to the transaction receipt
|
|
33
|
+
*/
|
|
34
|
+
async send(transactionData, chainId) {
|
|
35
|
+
const walletClient = await this.walletClient(chainId);
|
|
36
|
+
const txHash = await walletClient.sendTransaction(transactionData);
|
|
37
|
+
const publicClient = this.chainManager.getPublicClient(chainId);
|
|
38
|
+
const receipt = await publicClient.waitForTransactionReceipt({
|
|
39
|
+
hash: txHash,
|
|
40
|
+
});
|
|
41
|
+
return receipt;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Send multiple transactions sequentially from this EOA wallet.
|
|
45
|
+
*
|
|
46
|
+
* Executes transactions one at a time in order, waiting for 2 confirmations
|
|
47
|
+
* between each to ensure nonce updates. Returns an array of receipts.
|
|
48
|
+
* @param transactionData - Array of transactions to send
|
|
49
|
+
* @param chainId - Chain to send the transactions on
|
|
50
|
+
* @returns Promise resolving to array of transaction receipts (one per transaction)
|
|
51
|
+
*/
|
|
52
|
+
async sendBatch(transactionData, chainId) {
|
|
53
|
+
const receipts = [];
|
|
54
|
+
for (const tx of transactionData) {
|
|
55
|
+
const receipt = await this.send(tx, chainId);
|
|
56
|
+
const publicClient = this.chainManager.getPublicClient(chainId);
|
|
57
|
+
// wait an extra confirmation so give time for nonce to be updated
|
|
58
|
+
await publicClient.waitForTransactionReceipt({
|
|
59
|
+
hash: receipt.transactionHash,
|
|
60
|
+
confirmations: 2,
|
|
61
|
+
});
|
|
62
|
+
receipts.push(receipt);
|
|
63
|
+
}
|
|
64
|
+
return receipts;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=EOAWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.js","sourceRoot":"","sources":["../../../../../src/wallet/core/wallets/eoa/EOAWallet.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAKzC,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,OAAgB,SAAU,SAAQ,MAAM;IAC5C;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,OAAyB;QAUzB,OAAO,kBAAkB,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1C,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CACR,eAAgC,EAChC,OAAyB;QAEzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC;YAC3D,IAAI,EAAE,MAAM;SACb,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CACb,eAAkC,EAClC,OAAyB;QAEzB,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAC5C,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAC/D,kEAAkE;YAClE,MAAM,YAAY,CAAC,yBAAyB,CAAC;gBAC3C,IAAI,EAAE,OAAO,CAAC,eAAe;gBAC7B,aAAa,EAAE,CAAC;aACjB,CAAC,CAAA;YACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Address, LocalAccount, WalletClient } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../../../constants/supportedChains.js';
|
|
3
|
+
import type { Asset } from '../../../../../types/asset.js';
|
|
4
|
+
import type { TransactionData } from '../../../../../types/lend/index.js';
|
|
5
|
+
import type { EOATransactionReceipt } from '../../abstract/types/index.js';
|
|
6
|
+
import type { EOAWallet } from '../EOAWallet.js';
|
|
7
|
+
export type CreateEOAWalletMockOptions = {
|
|
8
|
+
/** Mock wallet address */
|
|
9
|
+
address?: Address;
|
|
10
|
+
/** Mock signer */
|
|
11
|
+
signer?: LocalAccount;
|
|
12
|
+
/** Custom implementation for walletClient */
|
|
13
|
+
walletClientImpl?: (chainId: SupportedChainId) => Promise<WalletClient>;
|
|
14
|
+
/** Custom implementation for send */
|
|
15
|
+
sendImpl?: (transactionData: TransactionData, chainId: SupportedChainId) => Promise<EOATransactionReceipt>;
|
|
16
|
+
/** Custom implementation for sendBatch */
|
|
17
|
+
sendBatchImpl?: (transactionData: TransactionData[], chainId: SupportedChainId) => Promise<EOATransactionReceipt[]>;
|
|
18
|
+
/** Optional custom sendTokens implementation */
|
|
19
|
+
sendTokensImpl?: (amount: number, asset: Asset, chainId: SupportedChainId, recipientAddress: Address) => Promise<TransactionData>;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Create a mock EOAWallet instance
|
|
23
|
+
* @description Returns an object typed as `EOAWallet` with configurable
|
|
24
|
+
* implementations for `send`, `sendBatch`, and `walletClient`. Other abstract
|
|
25
|
+
* members are provided with minimal defaults or throw if invoked (unless overridden).
|
|
26
|
+
*/
|
|
27
|
+
export declare function createMock(options?: CreateEOAWalletMockOptions): EOAWallet;
|
|
28
|
+
//# sourceMappingURL=EOAWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/eoa/__mocks__/EOAWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAG/D,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,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAEvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kBAAkB;IAClB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACvE,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CACT,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACnC,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CACd,eAAe,EAAE,eAAe,EAAE,EAClC,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACrC,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,0BAA+B,GACvC,SAAS,CAoEX"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { vi } from 'vitest';
|
|
2
|
+
/**
|
|
3
|
+
* Create a mock EOAWallet instance
|
|
4
|
+
* @description Returns an object typed as `EOAWallet` with configurable
|
|
5
|
+
* implementations for `send`, `sendBatch`, and `walletClient`. Other abstract
|
|
6
|
+
* members are provided with minimal defaults or throw if invoked (unless overridden).
|
|
7
|
+
*/
|
|
8
|
+
export function createMock(options = {}) {
|
|
9
|
+
const defaultReceipt = {
|
|
10
|
+
transactionHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
|
|
11
|
+
blockNumber: 12345n,
|
|
12
|
+
status: 'success',
|
|
13
|
+
};
|
|
14
|
+
const address = (options.address ??
|
|
15
|
+
'0x0000000000000000000000000000000000000000');
|
|
16
|
+
const signer = options.signer ?? { address, type: 'local' };
|
|
17
|
+
const walletClient = vi.fn(async (chainId) => {
|
|
18
|
+
if (options.walletClientImpl)
|
|
19
|
+
return options.walletClientImpl(chainId);
|
|
20
|
+
throw new Error('walletClient not implemented in EOAWallet mock');
|
|
21
|
+
});
|
|
22
|
+
const send = vi.fn(async (transactionData, chainId) => {
|
|
23
|
+
if (options.sendImpl)
|
|
24
|
+
return options.sendImpl(transactionData, chainId);
|
|
25
|
+
return defaultReceipt;
|
|
26
|
+
});
|
|
27
|
+
const sendBatch = vi.fn(async (transactionData, chainId) => {
|
|
28
|
+
if (options.sendBatchImpl)
|
|
29
|
+
return options.sendBatchImpl(transactionData, chainId);
|
|
30
|
+
return [defaultReceipt];
|
|
31
|
+
});
|
|
32
|
+
const sendTokens = vi.fn(async (amount, asset, chainId, recipientAddress) => {
|
|
33
|
+
if (options.sendTokensImpl)
|
|
34
|
+
return options.sendTokensImpl(amount, asset, chainId, recipientAddress);
|
|
35
|
+
throw new Error('sendTokens not implemented in EOAWallet mock');
|
|
36
|
+
});
|
|
37
|
+
const mock = {
|
|
38
|
+
get address() {
|
|
39
|
+
return address;
|
|
40
|
+
},
|
|
41
|
+
get signer() {
|
|
42
|
+
return signer;
|
|
43
|
+
},
|
|
44
|
+
walletClient,
|
|
45
|
+
send,
|
|
46
|
+
sendBatch,
|
|
47
|
+
sendTokens,
|
|
48
|
+
};
|
|
49
|
+
return mock;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=EOAWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/eoa/__mocks__/EOAWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAkC3B;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,UAAsC,EAAE;IAExC,MAAM,cAAc,GAAG;QACrB,eAAe,EACb,oEAAoE;QACtE,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,SAAS;KACkB,CAAA;IAErC,MAAM,OAAO,GAAY,CAAC,OAAO,CAAC,OAAO;QACvC,4CAA4C,CAAY,CAAA;IAC1D,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,IAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAA8B,CAAA;IAE3E,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CACxB,KAAK,EAAE,OAAyB,EAAyB,EAAE;QACzD,IAAI,OAAO,CAAC,gBAAgB;YAAE,OAAO,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACtE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC,CACF,CAAA;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAChB,KAAK,EACH,eAAgC,EAChC,OAAyB,EACO,EAAE;QAClC,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QACvE,OAAO,cAAc,CAAA;IACvB,CAAC,CACF,CAAA;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CACrB,KAAK,EACH,eAAkC,EAClC,OAAyB,EACS,EAAE;QACpC,IAAI,OAAO,CAAC,aAAa;YACvB,OAAO,OAAO,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA;QACxD,OAAO,CAAC,cAAc,CAAC,CAAA;IACzB,CAAC,CACF,CAAA;IAED,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CACtB,KAAK,EACH,MAAc,EACd,KAAY,EACZ,OAAyB,EACzB,gBAAyB,EACC,EAAE;QAC5B,IAAI,OAAO,CAAC,cAAc;YACxB,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAA;QACzE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC,CACF,CAAA;IAED,MAAM,IAAI,GAAG;QACX,IAAI,OAAO;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,MAAM;YACR,OAAO,MAAM,CAAA;QACf,CAAC;QACD,YAAY;QACZ,IAAI;QACJ,SAAS;QACT,UAAU;KACa,CAAA;IAEzB,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EOAWallet.spec.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts"],"names":[],"mappings":""}
|