@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,104 @@
|
|
|
1
|
+
import type { TurnkeySDKClientBase } from '@turnkey/core'
|
|
2
|
+
import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
|
|
3
|
+
import type { TurnkeyServerClient } from '@turnkey/sdk-server'
|
|
4
|
+
import { createAccount } from '@turnkey/viem'
|
|
5
|
+
import type { LocalAccount, WalletClient } from 'viem'
|
|
6
|
+
import { createWalletClient } from 'viem'
|
|
7
|
+
import { unichain } from 'viem/chains'
|
|
8
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
9
|
+
|
|
10
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
11
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
12
|
+
import { getRandomAddress } from '@/test/utils.js'
|
|
13
|
+
import { TurnkeyWallet } from '@/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js'
|
|
14
|
+
|
|
15
|
+
vi.mock('viem', async () => ({
|
|
16
|
+
// @ts-ignore - importActual returns unknown
|
|
17
|
+
...(await vi.importActual('viem')),
|
|
18
|
+
createWalletClient: vi.fn(),
|
|
19
|
+
}))
|
|
20
|
+
|
|
21
|
+
vi.mock('@turnkey/viem', async () => ({
|
|
22
|
+
createAccount: vi.fn(),
|
|
23
|
+
}))
|
|
24
|
+
|
|
25
|
+
const mockAddress = getRandomAddress()
|
|
26
|
+
const mockChainManager = new MockChainManager({
|
|
27
|
+
supportedChains: [unichain.id],
|
|
28
|
+
}) as unknown as ChainManager
|
|
29
|
+
|
|
30
|
+
function createMockTurnkeyClient():
|
|
31
|
+
| TurnkeyHttpClient
|
|
32
|
+
| TurnkeyServerClient
|
|
33
|
+
| TurnkeySDKClientBase {
|
|
34
|
+
return {
|
|
35
|
+
// minimal shape for typing; createAccount uses this via @turnkey/viem
|
|
36
|
+
} as unknown as TurnkeyHttpClient
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
describe('TurnkeyWallet', () => {
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
vi.clearAllMocks()
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('should initialize signer and address from Turnkey account', async () => {
|
|
45
|
+
const mockLocalAccount = { address: mockAddress } as unknown as LocalAccount
|
|
46
|
+
vi.mocked(createAccount).mockResolvedValue(mockLocalAccount)
|
|
47
|
+
|
|
48
|
+
const wallet = await TurnkeyWallet.create({
|
|
49
|
+
client: createMockTurnkeyClient(),
|
|
50
|
+
organizationId: 'org_123',
|
|
51
|
+
signWith: 'key_abc',
|
|
52
|
+
chainManager: mockChainManager,
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
expect(wallet.address).toBe(mockAddress)
|
|
56
|
+
expect(wallet.signer).toBe(mockLocalAccount)
|
|
57
|
+
expect(createAccount).toHaveBeenCalledOnce()
|
|
58
|
+
const args = vi.mocked(createAccount).mock.calls[0][0]
|
|
59
|
+
expect(args.client).toEqual(createMockTurnkeyClient())
|
|
60
|
+
expect(args.organizationId).toBe('org_123')
|
|
61
|
+
expect(args.signWith).toBe('key_abc')
|
|
62
|
+
expect(args.ethereumAddress).toBeUndefined()
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('takes ethereumAddress', async () => {
|
|
66
|
+
const mockLocalAccount = { address: mockAddress } as unknown as LocalAccount
|
|
67
|
+
vi.mocked(createAccount).mockResolvedValue(mockLocalAccount)
|
|
68
|
+
|
|
69
|
+
await TurnkeyWallet.create({
|
|
70
|
+
client: createMockTurnkeyClient(),
|
|
71
|
+
organizationId: 'org_123',
|
|
72
|
+
signWith: 'key_abc',
|
|
73
|
+
ethereumAddress: '0x123',
|
|
74
|
+
chainManager: mockChainManager,
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
const args = vi.mocked(createAccount).mock.calls[0][0]
|
|
78
|
+
expect(args.ethereumAddress).toBe('0x123')
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('should create a wallet client with correct configuration', async () => {
|
|
82
|
+
const mockLocalAccount = { address: mockAddress } as unknown as LocalAccount
|
|
83
|
+
vi.mocked(createAccount).mockResolvedValue(mockLocalAccount)
|
|
84
|
+
const wallet = await TurnkeyWallet.create({
|
|
85
|
+
client: createMockTurnkeyClient(),
|
|
86
|
+
organizationId: 'org_123',
|
|
87
|
+
signWith: 'key_abc',
|
|
88
|
+
chainManager: mockChainManager,
|
|
89
|
+
})
|
|
90
|
+
const mockWalletClient = {
|
|
91
|
+
account: mockLocalAccount,
|
|
92
|
+
address: mockAddress,
|
|
93
|
+
} as unknown as WalletClient
|
|
94
|
+
vi.mocked(createWalletClient).mockResolvedValue(mockWalletClient)
|
|
95
|
+
|
|
96
|
+
const walletClient = await wallet.walletClient(unichain.id)
|
|
97
|
+
|
|
98
|
+
expect(createWalletClient).toHaveBeenCalledOnce()
|
|
99
|
+
const args = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
100
|
+
expect(args.account).toBe(mockLocalAccount)
|
|
101
|
+
expect(args.chain).toBe(mockChainManager.getChain(unichain.id))
|
|
102
|
+
expect(walletClient).toBe(mockWalletClient)
|
|
103
|
+
})
|
|
104
|
+
})
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { TurnkeySDKClientBase } from '@turnkey/core'
|
|
2
|
+
import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
|
|
3
|
+
import type { TurnkeyServerClient } from '@turnkey/sdk-server'
|
|
4
|
+
import { createAccount } from '@turnkey/viem'
|
|
5
|
+
import type { LocalAccount } from 'viem'
|
|
6
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
7
|
+
|
|
8
|
+
import { getRandomAddress } from '@/test/utils.js'
|
|
9
|
+
import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
|
|
10
|
+
|
|
11
|
+
vi.mock('@turnkey/viem', async () => ({
|
|
12
|
+
createAccount: vi.fn(),
|
|
13
|
+
}))
|
|
14
|
+
|
|
15
|
+
function createMockTurnkeyClient():
|
|
16
|
+
| TurnkeyHttpClient
|
|
17
|
+
| TurnkeyServerClient
|
|
18
|
+
| TurnkeySDKClientBase {
|
|
19
|
+
return {
|
|
20
|
+
// minimal shape for typing; createAccount uses this via @turnkey/viem
|
|
21
|
+
} as unknown as TurnkeyHttpClient
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
describe('createSigner (Node Turnkey)', () => {
|
|
25
|
+
const mockAddress = getRandomAddress()
|
|
26
|
+
|
|
27
|
+
it('should create a LocalAccount with correct configuration', async () => {
|
|
28
|
+
const mockLocalAccount = {
|
|
29
|
+
address: mockAddress,
|
|
30
|
+
signMessage: vi.fn(),
|
|
31
|
+
sign: vi.fn(),
|
|
32
|
+
signTransaction: vi.fn(),
|
|
33
|
+
signTypedData: vi.fn(),
|
|
34
|
+
} as unknown as LocalAccount
|
|
35
|
+
vi.mocked(createAccount).mockResolvedValue(mockLocalAccount)
|
|
36
|
+
|
|
37
|
+
const client = createMockTurnkeyClient()
|
|
38
|
+
const signer = await createSigner({
|
|
39
|
+
client,
|
|
40
|
+
organizationId: 'org_123',
|
|
41
|
+
signWith: 'key_abc',
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
expect(createAccount).toHaveBeenCalledWith({
|
|
45
|
+
client,
|
|
46
|
+
organizationId: 'org_123',
|
|
47
|
+
signWith: 'key_abc',
|
|
48
|
+
ethereumAddress: undefined,
|
|
49
|
+
})
|
|
50
|
+
expect(signer).toBe(mockLocalAccount)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
it('should pass ethereumAddress when provided', async () => {
|
|
54
|
+
const mockLocalAccount = {
|
|
55
|
+
address: mockAddress,
|
|
56
|
+
type: 'local',
|
|
57
|
+
} as unknown as LocalAccount
|
|
58
|
+
vi.mocked(createAccount).mockResolvedValue(mockLocalAccount)
|
|
59
|
+
|
|
60
|
+
const client = createMockTurnkeyClient()
|
|
61
|
+
const ethereumAddress = getRandomAddress()
|
|
62
|
+
const signer = await createSigner({
|
|
63
|
+
client,
|
|
64
|
+
organizationId: 'org_123',
|
|
65
|
+
signWith: 'key_abc',
|
|
66
|
+
ethereumAddress,
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
expect(createAccount).toHaveBeenCalledWith({
|
|
70
|
+
client,
|
|
71
|
+
organizationId: 'org_123',
|
|
72
|
+
signWith: 'key_abc',
|
|
73
|
+
ethereumAddress,
|
|
74
|
+
})
|
|
75
|
+
expect(signer).toBe(mockLocalAccount)
|
|
76
|
+
})
|
|
77
|
+
})
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createAccount } from '@turnkey/viem'
|
|
2
|
+
import type { LocalAccount } from 'viem'
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
NodeOptionsMap,
|
|
6
|
+
TurnkeyHostedWalletToActionsWalletOptions,
|
|
7
|
+
} from '@/wallet/node/providers/hosted/types/index.js'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Create a viem LocalAccount instance backed by Turnkey
|
|
11
|
+
* @description Wraps the Turnkey SDK's `createAccount` to produce a signing
|
|
12
|
+
* account compatible with viem. Under the hood, this uses the provided
|
|
13
|
+
* `client`, `organizationId`, and `signWith` to authenticate signing requests
|
|
14
|
+
* with Turnkey. If `ethereumAddress` is supplied, it's used directly;
|
|
15
|
+
* otherwise the SDK fetches it from the Turnkey API.
|
|
16
|
+
* @param params.client - Turnkey client instance
|
|
17
|
+
* @param params.organizationId - Turnkey organization ID that owns the signing key
|
|
18
|
+
* @param params.signWith - Wallet account address, private key address, or private key ID
|
|
19
|
+
* @param params.ethereumAddress - Ethereum address to use for this account, in the case that a private key ID is used to sign.
|
|
20
|
+
* @returns Promise resolving to a viem `LocalAccount` with Turnkey as the signer backend
|
|
21
|
+
*/
|
|
22
|
+
export async function createSigner(
|
|
23
|
+
params: TurnkeyHostedWalletToActionsWalletOptions & NodeOptionsMap['turnkey'],
|
|
24
|
+
): Promise<LocalAccount> {
|
|
25
|
+
const { client, organizationId, signWith, ethereumAddress } = params
|
|
26
|
+
return createAccount({
|
|
27
|
+
client,
|
|
28
|
+
organizationId,
|
|
29
|
+
signWith,
|
|
30
|
+
ethereumAddress,
|
|
31
|
+
})
|
|
32
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem'
|
|
2
|
+
|
|
3
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
4
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
5
|
+
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
6
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
7
|
+
import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
|
|
8
|
+
import { DynamicWallet } from '@/wallet/react/wallets/hosted/dynamic/DynamicWallet.js'
|
|
9
|
+
import { createSigner } from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Dynamic wallet provider implementation
|
|
13
|
+
* @description Wallet provider implementation using Dynamic service
|
|
14
|
+
*/
|
|
15
|
+
export class DynamicHostedWalletProvider extends HostedWalletProvider<
|
|
16
|
+
'dynamic',
|
|
17
|
+
ReactToActionsOptionsMap
|
|
18
|
+
> {
|
|
19
|
+
/**
|
|
20
|
+
* Create a new Dynamic wallet provider
|
|
21
|
+
*/
|
|
22
|
+
constructor(
|
|
23
|
+
chainManager: ChainManager,
|
|
24
|
+
lendProvider?: LendProvider<LendConfig>,
|
|
25
|
+
) {
|
|
26
|
+
super(chainManager, lendProvider)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async toActionsWallet(
|
|
30
|
+
params: ReactToActionsOptionsMap['dynamic'],
|
|
31
|
+
): Promise<Wallet> {
|
|
32
|
+
return DynamicWallet.create({
|
|
33
|
+
dynamicWallet: params.wallet,
|
|
34
|
+
chainManager: this.chainManager,
|
|
35
|
+
lendProvider: this.lendProvider,
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create a viem LocalAccount signer from Dynamic credentials
|
|
41
|
+
* @description Produces a signing account backed by Dynamic without wrapping
|
|
42
|
+
* it in a full Actions wallet. This is useful when you need to pass the signer
|
|
43
|
+
* into an Actions smart wallet as a signer, for lower-level viem operations, or
|
|
44
|
+
* for passing to other libraries that accept a viem `LocalAccount`.
|
|
45
|
+
* @param params - Dynamic configuration for the signer
|
|
46
|
+
* @param params.wallet - Dynamic wallet instance
|
|
47
|
+
* @returns Promise resolving to a viem `LocalAccount` with Dynamic as the signer backend
|
|
48
|
+
*/
|
|
49
|
+
async createSigner(
|
|
50
|
+
params: ReactToActionsOptionsMap['dynamic'],
|
|
51
|
+
): Promise<LocalAccount> {
|
|
52
|
+
return createSigner(params)
|
|
53
|
+
}
|
|
54
|
+
}
|
package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem'
|
|
2
|
+
import { unichain } from 'viem/op-stack'
|
|
3
|
+
import { vi } from 'vitest'
|
|
4
|
+
|
|
5
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
7
|
+
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
8
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
9
|
+
import type {
|
|
10
|
+
DynamicHostedWalletToActionsWalletOptions,
|
|
11
|
+
ReactToActionsOptionsMap,
|
|
12
|
+
} from '@/wallet/react/providers/hosted/types/index.js'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Minimal mock implementation matching the shape of HostedWalletProvider<'dynamic'>
|
|
16
|
+
* for use in unit tests without importing browser-only dependencies.
|
|
17
|
+
*/
|
|
18
|
+
export class DynamicHostedWalletProviderMock extends HostedWalletProvider<
|
|
19
|
+
'dynamic',
|
|
20
|
+
ReactToActionsOptionsMap
|
|
21
|
+
> {
|
|
22
|
+
// Exposed mock for assertions if needed
|
|
23
|
+
public readonly toActionsWalletMock = vi.fn(
|
|
24
|
+
async (
|
|
25
|
+
_params: DynamicHostedWalletToActionsWalletOptions,
|
|
26
|
+
): Promise<Wallet> => {
|
|
27
|
+
return {} as unknown as Wallet
|
|
28
|
+
},
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
public readonly createSignerMock = vi.fn(
|
|
32
|
+
async (
|
|
33
|
+
_params: DynamicHostedWalletToActionsWalletOptions,
|
|
34
|
+
): Promise<LocalAccount> => {
|
|
35
|
+
return {} as unknown as LocalAccount
|
|
36
|
+
},
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
constructor() {
|
|
40
|
+
const mockChainManager = new MockChainManager({
|
|
41
|
+
supportedChains: [unichain.id],
|
|
42
|
+
}) as unknown as ChainManager
|
|
43
|
+
super(mockChainManager)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async toActionsWallet(
|
|
47
|
+
params: DynamicHostedWalletToActionsWalletOptions,
|
|
48
|
+
): Promise<Wallet> {
|
|
49
|
+
return this.toActionsWalletMock(params)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async createSigner(
|
|
53
|
+
params: DynamicHostedWalletToActionsWalletOptions,
|
|
54
|
+
): Promise<LocalAccount> {
|
|
55
|
+
return this.createSignerMock(params)
|
|
56
|
+
}
|
|
57
|
+
}
|
package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem'
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
6
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
7
|
+
import { DynamicHostedWalletProvider } from '@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js'
|
|
8
|
+
import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
|
|
9
|
+
import { DynamicWallet } from '@/wallet/react/wallets/hosted/dynamic/DynamicWallet.js'
|
|
10
|
+
import * as createSignerUtil from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
|
|
11
|
+
|
|
12
|
+
// Mock DynamicWallet to avoid importing browser-related deps
|
|
13
|
+
vi.mock('@/wallet/react/wallets/hosted/dynamic/DynamicWallet.js', async () => {
|
|
14
|
+
const { DynamicWalletMock } = await import(
|
|
15
|
+
'@/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js'
|
|
16
|
+
)
|
|
17
|
+
return { DynamicWallet: DynamicWalletMock }
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
describe('DynamicHostedWalletProvider', () => {
|
|
21
|
+
describe('toActionsWallet', () => {
|
|
22
|
+
it('toActionsWallet delegates to DynamicWallet.create with correct args', async () => {
|
|
23
|
+
const mockChainManager = new MockChainManager({
|
|
24
|
+
supportedChains: [1],
|
|
25
|
+
}) as unknown as ChainManager
|
|
26
|
+
const provider = new DynamicHostedWalletProvider(mockChainManager)
|
|
27
|
+
|
|
28
|
+
const mockDynamicWallet = {
|
|
29
|
+
__brand: 'dynamic-wallet',
|
|
30
|
+
} as unknown as DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
31
|
+
const mockResult = {
|
|
32
|
+
__brand: 'actions-wallet',
|
|
33
|
+
} as unknown as DynamicWallet
|
|
34
|
+
vi.mocked(DynamicWallet.create).mockResolvedValueOnce(mockResult)
|
|
35
|
+
|
|
36
|
+
const result = await provider.toActionsWallet({
|
|
37
|
+
wallet: mockDynamicWallet,
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
expect(DynamicWallet.create).toHaveBeenCalledTimes(1)
|
|
41
|
+
expect(DynamicWallet.create).toHaveBeenCalledWith({
|
|
42
|
+
dynamicWallet: mockDynamicWallet,
|
|
43
|
+
chainManager: mockChainManager,
|
|
44
|
+
})
|
|
45
|
+
expect(result).toBe(mockResult)
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
it('forwards lendProvider when provided to constructor', async () => {
|
|
49
|
+
const mockChainManager = new MockChainManager({
|
|
50
|
+
supportedChains: [1],
|
|
51
|
+
}) as unknown as ChainManager
|
|
52
|
+
const mockLendProvider = {} as any
|
|
53
|
+
const provider = new DynamicHostedWalletProvider(
|
|
54
|
+
mockChainManager,
|
|
55
|
+
mockLendProvider as LendProvider<LendConfig>,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
const mockDynamicWallet = {
|
|
59
|
+
__brand: 'dynamic-wallet',
|
|
60
|
+
} as unknown as DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
61
|
+
const mockResult = {
|
|
62
|
+
__brand: 'actions-wallet',
|
|
63
|
+
} as unknown as DynamicWallet
|
|
64
|
+
vi.mocked(DynamicWallet.create).mockResolvedValueOnce(mockResult)
|
|
65
|
+
|
|
66
|
+
await provider.toActionsWallet({
|
|
67
|
+
wallet: mockDynamicWallet,
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
expect(DynamicWallet.create).toHaveBeenCalledWith(
|
|
71
|
+
expect.objectContaining({
|
|
72
|
+
lendProvider: mockLendProvider,
|
|
73
|
+
}),
|
|
74
|
+
)
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
describe('createSigner', () => {
|
|
79
|
+
it('should delegate to createSigner utility with correct params', async () => {
|
|
80
|
+
const mockChainManager = new MockChainManager({
|
|
81
|
+
supportedChains: [1],
|
|
82
|
+
}) as unknown as ChainManager
|
|
83
|
+
const provider = new DynamicHostedWalletProvider(mockChainManager)
|
|
84
|
+
|
|
85
|
+
const mockDynamicWallet = {
|
|
86
|
+
__brand: 'dynamic-wallet',
|
|
87
|
+
} as unknown as DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
88
|
+
|
|
89
|
+
const mockSigner = {
|
|
90
|
+
address: '0xabc',
|
|
91
|
+
type: 'local',
|
|
92
|
+
} as unknown as LocalAccount
|
|
93
|
+
|
|
94
|
+
const createSignerSpy = vi
|
|
95
|
+
.spyOn(createSignerUtil, 'createSigner')
|
|
96
|
+
.mockResolvedValueOnce(mockSigner)
|
|
97
|
+
|
|
98
|
+
const params = { wallet: mockDynamicWallet }
|
|
99
|
+
const signer = await provider.createSigner(params)
|
|
100
|
+
|
|
101
|
+
expect(createSignerSpy).toHaveBeenCalledWith(params)
|
|
102
|
+
expect(signer).toBe(mockSigner)
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
})
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem'
|
|
2
|
+
|
|
3
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
4
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
5
|
+
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
6
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
7
|
+
import type { ReactToActionsOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
|
|
8
|
+
import { PrivyWallet } from '@/wallet/react/wallets/hosted/privy/PrivyWallet.js'
|
|
9
|
+
import { createSigner } from '@/wallet/react/wallets/hosted/privy/utils/createSigner.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Privy hosted wallet provider (React)
|
|
13
|
+
*/
|
|
14
|
+
export class PrivyHostedWalletProvider extends HostedWalletProvider<
|
|
15
|
+
'privy',
|
|
16
|
+
ReactToActionsOptionsMap
|
|
17
|
+
> {
|
|
18
|
+
/**
|
|
19
|
+
* Create a new Privy wallet provider
|
|
20
|
+
* @param chainManager Chain manager for RPC, chain info, and transports
|
|
21
|
+
*/
|
|
22
|
+
constructor(
|
|
23
|
+
chainManager: ChainManager,
|
|
24
|
+
lendProvider?: LendProvider<LendConfig>,
|
|
25
|
+
) {
|
|
26
|
+
super(chainManager, lendProvider)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async toActionsWallet(
|
|
30
|
+
params: ReactToActionsOptionsMap['privy'],
|
|
31
|
+
): Promise<Wallet> {
|
|
32
|
+
const { connectedWallet } = params
|
|
33
|
+
const wallet = await PrivyWallet.create({
|
|
34
|
+
chainManager: this.chainManager,
|
|
35
|
+
connectedWallet,
|
|
36
|
+
lendProvider: this.lendProvider,
|
|
37
|
+
})
|
|
38
|
+
return wallet
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Create a viem LocalAccount signer from Privy credentials
|
|
43
|
+
* @description Produces a signing account backed by Privy without wrapping
|
|
44
|
+
* it in a full Actions wallet. This is useful when you need to pass the signer
|
|
45
|
+
* into an Actions smart wallet as a signer, for lower-level viem operations, or
|
|
46
|
+
* for passing to other libraries that accept a viem `LocalAccount`.
|
|
47
|
+
* @param params - Privy configuration for the signer
|
|
48
|
+
* @param params.connectedWallet - Privy connected wallet
|
|
49
|
+
* @returns Promise resolving to a viem `LocalAccount` with Privy as the signer backend
|
|
50
|
+
*/
|
|
51
|
+
async createSigner(
|
|
52
|
+
params: ReactToActionsOptionsMap['privy'],
|
|
53
|
+
): Promise<LocalAccount> {
|
|
54
|
+
return createSigner(params)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LocalAccount } from 'node_modules/viem/_types/accounts/types.js'
|
|
2
|
+
import { unichain } from 'viem/op-stack'
|
|
3
|
+
import { vi } from 'vitest'
|
|
4
|
+
|
|
5
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
7
|
+
import { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
8
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
9
|
+
import type {
|
|
10
|
+
PrivyHostedWalletToActionsWalletOptions,
|
|
11
|
+
ReactToActionsOptionsMap,
|
|
12
|
+
} from '@/wallet/react/providers/hosted/types/index.js'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Minimal mock implementation matching the shape of HostedWalletProvider<'privy'>
|
|
16
|
+
* for use in unit tests without importing browser-only dependencies.
|
|
17
|
+
*/
|
|
18
|
+
export class PrivyHostedWalletProviderMock extends HostedWalletProvider<
|
|
19
|
+
'privy',
|
|
20
|
+
ReactToActionsOptionsMap
|
|
21
|
+
> {
|
|
22
|
+
public readonly toActionsWalletMock = vi.fn(
|
|
23
|
+
async (
|
|
24
|
+
_params: PrivyHostedWalletToActionsWalletOptions,
|
|
25
|
+
): Promise<Wallet> => {
|
|
26
|
+
return {} as unknown as Wallet
|
|
27
|
+
},
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
public readonly createSignerMock = vi.fn(
|
|
31
|
+
async (
|
|
32
|
+
_params: PrivyHostedWalletToActionsWalletOptions,
|
|
33
|
+
): Promise<LocalAccount> => {
|
|
34
|
+
return {} as unknown as LocalAccount
|
|
35
|
+
},
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
constructor() {
|
|
39
|
+
const mockChainManager = new MockChainManager({
|
|
40
|
+
supportedChains: [unichain.id],
|
|
41
|
+
}) as unknown as ChainManager
|
|
42
|
+
super(mockChainManager)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async toActionsWallet(
|
|
46
|
+
params: PrivyHostedWalletToActionsWalletOptions,
|
|
47
|
+
): Promise<Wallet> {
|
|
48
|
+
return this.toActionsWalletMock(params)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async createSigner(
|
|
52
|
+
params: PrivyHostedWalletToActionsWalletOptions,
|
|
53
|
+
): Promise<LocalAccount> {
|
|
54
|
+
return this.createSignerMock(params)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { ConnectedWallet } from '@privy-io/react-auth'
|
|
2
|
+
import type { LocalAccount } from 'viem'
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
4
|
+
|
|
5
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
7
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
8
|
+
import { PrivyHostedWalletProvider } from '@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
9
|
+
import { PrivyWallet } from '@/wallet/react/wallets/hosted/privy/PrivyWallet.js'
|
|
10
|
+
import * as createSignerUtil from '@/wallet/react/wallets/hosted/privy/utils/createSigner.js'
|
|
11
|
+
|
|
12
|
+
// Mock PrivyWallet to avoid importing browser-related deps
|
|
13
|
+
vi.mock('@/wallet/react/wallets/hosted/privy/PrivyWallet.js', async () => {
|
|
14
|
+
const { PrivyWalletMock } = await import(
|
|
15
|
+
'@/wallet/react/wallets/hosted/privy/__mocks__/PrivyWalletMock.js'
|
|
16
|
+
)
|
|
17
|
+
return { PrivyWallet: PrivyWalletMock }
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
describe('PrivyHostedWalletProvider (React)', () => {
|
|
21
|
+
describe('toActionsWallet', () => {
|
|
22
|
+
it('toActionsWallet delegates to PrivyWallet.create with correct args', async () => {
|
|
23
|
+
const mockChainManager = new MockChainManager({
|
|
24
|
+
supportedChains: [1],
|
|
25
|
+
}) as unknown as ChainManager
|
|
26
|
+
const provider = new PrivyHostedWalletProvider(mockChainManager)
|
|
27
|
+
const mockActionsWallet = {
|
|
28
|
+
__brand: 'actions-wallet',
|
|
29
|
+
} as unknown as PrivyWallet
|
|
30
|
+
const mockConnectedWallet = {
|
|
31
|
+
__brand: 'privy-connected-wallet',
|
|
32
|
+
} as unknown as ConnectedWallet
|
|
33
|
+
vi.mocked(PrivyWallet.create).mockResolvedValueOnce(mockActionsWallet)
|
|
34
|
+
|
|
35
|
+
const result = await provider.toActionsWallet({
|
|
36
|
+
connectedWallet: mockConnectedWallet,
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
expect(PrivyWallet.create).toHaveBeenCalledTimes(1)
|
|
40
|
+
expect(PrivyWallet.create).toHaveBeenCalledWith({
|
|
41
|
+
chainManager: mockChainManager,
|
|
42
|
+
connectedWallet: mockConnectedWallet,
|
|
43
|
+
})
|
|
44
|
+
expect(result).toBe(mockActionsWallet)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('forwards lendProvider when provided to constructor', async () => {
|
|
48
|
+
const mockChainManager = new MockChainManager({
|
|
49
|
+
supportedChains: [1],
|
|
50
|
+
}) as unknown as ChainManager
|
|
51
|
+
const mockLendProvider = {} as any
|
|
52
|
+
const provider = new PrivyHostedWalletProvider(
|
|
53
|
+
mockChainManager,
|
|
54
|
+
mockLendProvider as LendProvider<LendConfig>,
|
|
55
|
+
)
|
|
56
|
+
const mockActionsWallet = {
|
|
57
|
+
__brand: 'actions-wallet',
|
|
58
|
+
} as unknown as PrivyWallet
|
|
59
|
+
const mockConnectedWallet = {
|
|
60
|
+
__brand: 'privy-connected-wallet',
|
|
61
|
+
} as unknown as ConnectedWallet
|
|
62
|
+
vi.mocked(PrivyWallet.create).mockResolvedValueOnce(mockActionsWallet)
|
|
63
|
+
|
|
64
|
+
await provider.toActionsWallet({
|
|
65
|
+
connectedWallet: mockConnectedWallet,
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
expect(PrivyWallet.create).toHaveBeenCalledWith(
|
|
69
|
+
expect.objectContaining({
|
|
70
|
+
lendProvider: mockLendProvider,
|
|
71
|
+
}),
|
|
72
|
+
)
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
describe('createSigner', () => {
|
|
77
|
+
it('should delegate to createSigner utility with correct params', async () => {
|
|
78
|
+
const mockChainManager = new MockChainManager({
|
|
79
|
+
supportedChains: [1],
|
|
80
|
+
}) as unknown as ChainManager
|
|
81
|
+
const provider = new PrivyHostedWalletProvider(mockChainManager)
|
|
82
|
+
|
|
83
|
+
const mockConnectedWallet = {
|
|
84
|
+
__brand: 'privy-connected-wallet',
|
|
85
|
+
} as unknown as ConnectedWallet
|
|
86
|
+
|
|
87
|
+
const mockSigner = {
|
|
88
|
+
address: '0xabc',
|
|
89
|
+
type: 'local',
|
|
90
|
+
} as unknown as LocalAccount
|
|
91
|
+
|
|
92
|
+
const createSignerSpy = vi
|
|
93
|
+
.spyOn(createSignerUtil, 'createSigner')
|
|
94
|
+
.mockResolvedValueOnce(mockSigner)
|
|
95
|
+
|
|
96
|
+
const params = { connectedWallet: mockConnectedWallet }
|
|
97
|
+
const signer = await provider.createSigner(params)
|
|
98
|
+
|
|
99
|
+
expect(createSignerSpy).toHaveBeenCalledWith(params)
|
|
100
|
+
expect(signer).toBe(mockSigner)
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})
|