@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,78 @@
|
|
|
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 { TurnkeyWallet } from '@/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js'
|
|
9
|
+
import { createSigner } from '@/wallet/react/wallets/hosted/turnkey/utils/createSigner.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Turnkey wallet provider implementation
|
|
13
|
+
* @description Hosted wallet provider that wraps Turnkey's signing infrastructure
|
|
14
|
+
* and exposes an Actions-compatible wallet. This provider is intended for browser
|
|
15
|
+
* environments where the Turnkey client and
|
|
16
|
+
* organization context are provided at construction time.
|
|
17
|
+
*/
|
|
18
|
+
export class TurnkeyHostedWalletProvider extends HostedWalletProvider<
|
|
19
|
+
'turnkey',
|
|
20
|
+
ReactToActionsOptionsMap
|
|
21
|
+
> {
|
|
22
|
+
/**
|
|
23
|
+
* Create a new Turnkey wallet provider
|
|
24
|
+
* @param client - Turnkey browser client instance
|
|
25
|
+
* @param organizationId - Turnkey organization ID that owns the signing key
|
|
26
|
+
* @param chainManager - Chain manager used to resolve chains and RPC transports
|
|
27
|
+
*/
|
|
28
|
+
constructor(
|
|
29
|
+
chainManager: ChainManager,
|
|
30
|
+
lendProvider?: LendProvider<LendConfig>,
|
|
31
|
+
) {
|
|
32
|
+
super(chainManager, lendProvider)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Convert a Turnkey hosted wallet context into an Actions wallet
|
|
37
|
+
* @description Creates a `TurnkeyWallet` configured with the provider's Turnkey
|
|
38
|
+
* client and organization.
|
|
39
|
+
* @param params - Options for creating the Actions wallet from Turnkey context
|
|
40
|
+
* @param params.client - Turnkey client instance
|
|
41
|
+
* @param params.organizationId - Turnkey organization ID that owns the signing key
|
|
42
|
+
* @param params.signWith - Wallet account address, private key address, or private key ID
|
|
43
|
+
* @param params.ethereumAddress - Ethereum address to use for this account, in the case that a private key ID is used to sign.
|
|
44
|
+
* @returns Promise resolving to an Actions-compatible wallet instance
|
|
45
|
+
*/
|
|
46
|
+
async toActionsWallet(
|
|
47
|
+
params: ReactToActionsOptionsMap['turnkey'],
|
|
48
|
+
): Promise<Wallet> {
|
|
49
|
+
const { client, organizationId, signWith, ethereumAddress } = params
|
|
50
|
+
return TurnkeyWallet.create({
|
|
51
|
+
client,
|
|
52
|
+
organizationId,
|
|
53
|
+
signWith,
|
|
54
|
+
ethereumAddress,
|
|
55
|
+
chainManager: this.chainManager,
|
|
56
|
+
lendProvider: this.lendProvider,
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Create a viem LocalAccount signer from Turnkey credentials
|
|
62
|
+
* @description Produces a signing account backed by Turnkey without wrapping
|
|
63
|
+
* it in a full Actions wallet. This is useful when you need to pass the signer
|
|
64
|
+
* into an Actions smart wallet as an owner, for lower-level viem operations, or
|
|
65
|
+
* for passing to other libraries that accept a viem `LocalAccount`.
|
|
66
|
+
* @param params - Turnkey configuration for the signer
|
|
67
|
+
* @param params.client - Turnkey client instance
|
|
68
|
+
* @param params.organizationId - Turnkey organization ID that owns the signing key
|
|
69
|
+
* @param params.signWith - Wallet account address, private key address, or private key ID
|
|
70
|
+
* @param params.ethereumAddress - Optional Ethereum address (recommended for passkey clients to avoid extra prompts)
|
|
71
|
+
* @returns Promise resolving to a viem `LocalAccount` with Turnkey as the signer backend
|
|
72
|
+
*/
|
|
73
|
+
async createSigner(
|
|
74
|
+
params: ReactToActionsOptionsMap['turnkey'],
|
|
75
|
+
): Promise<LocalAccount> {
|
|
76
|
+
return createSigner(params)
|
|
77
|
+
}
|
|
78
|
+
}
|
package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { TurnkeySDKClientBase } from '@turnkey/react-wallet-kit'
|
|
2
|
+
import type { LocalAccount } from 'viem'
|
|
3
|
+
import { unichain } from 'viem/chains'
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
5
|
+
|
|
6
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
8
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
9
|
+
import { TurnkeyHostedWalletProvider } from '@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
10
|
+
import { TurnkeyWallet } from '@/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js'
|
|
11
|
+
import * as createSignerUtil from '@/wallet/react/wallets/hosted/turnkey/utils/createSigner.js'
|
|
12
|
+
|
|
13
|
+
describe('TurnkeyHostedWalletProvider', () => {
|
|
14
|
+
const mockChainManager = new MockChainManager({
|
|
15
|
+
supportedChains: [unichain.id],
|
|
16
|
+
}) as unknown as ChainManager
|
|
17
|
+
|
|
18
|
+
describe('toActionsWallet', () => {
|
|
19
|
+
it('forwards params to TurnkeyWallet.create', async () => {
|
|
20
|
+
const turnkeyClient = {} as unknown as TurnkeySDKClientBase
|
|
21
|
+
const provider = new TurnkeyHostedWalletProvider(mockChainManager)
|
|
22
|
+
const spyTurnkeyWalletCreate = vi
|
|
23
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
24
|
+
.mockResolvedValueOnce({
|
|
25
|
+
address: '0xabc',
|
|
26
|
+
} as unknown as TurnkeyWallet)
|
|
27
|
+
|
|
28
|
+
await provider.toActionsWallet({
|
|
29
|
+
client: turnkeyClient,
|
|
30
|
+
organizationId: 'org_123',
|
|
31
|
+
signWith: 'key_abc',
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
35
|
+
expect.objectContaining({
|
|
36
|
+
client: turnkeyClient,
|
|
37
|
+
organizationId: 'org_123',
|
|
38
|
+
signWith: 'key_abc',
|
|
39
|
+
ethereumAddress: undefined,
|
|
40
|
+
chainManager: mockChainManager,
|
|
41
|
+
}),
|
|
42
|
+
)
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
it('forwards ethereumAddress when provided', async () => {
|
|
46
|
+
const turnkeyClient = {} as unknown as TurnkeySDKClientBase
|
|
47
|
+
const provider = new TurnkeyHostedWalletProvider(mockChainManager)
|
|
48
|
+
const spyTurnkeyWalletCreate = vi
|
|
49
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
50
|
+
.mockResolvedValueOnce({
|
|
51
|
+
address: '0xabc',
|
|
52
|
+
} as unknown as TurnkeyWallet)
|
|
53
|
+
|
|
54
|
+
await provider.toActionsWallet({
|
|
55
|
+
client: turnkeyClient,
|
|
56
|
+
organizationId: 'org_123',
|
|
57
|
+
signWith: 'key_abc',
|
|
58
|
+
ethereumAddress: '0x123',
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
62
|
+
expect.objectContaining({
|
|
63
|
+
client: turnkeyClient,
|
|
64
|
+
organizationId: 'org_123',
|
|
65
|
+
signWith: 'key_abc',
|
|
66
|
+
ethereumAddress: '0x123',
|
|
67
|
+
chainManager: mockChainManager,
|
|
68
|
+
}),
|
|
69
|
+
)
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
it('returns the created TurnkeyWallet instance', async () => {
|
|
73
|
+
const turnkeyClient = {} as unknown as TurnkeySDKClientBase
|
|
74
|
+
const provider = new TurnkeyHostedWalletProvider(mockChainManager)
|
|
75
|
+
const fakeWallet = {
|
|
76
|
+
address: '0xabc',
|
|
77
|
+
} as unknown as TurnkeyWallet
|
|
78
|
+
vi.spyOn(TurnkeyWallet, 'create').mockResolvedValueOnce(fakeWallet)
|
|
79
|
+
|
|
80
|
+
const actionsWallet = await provider.toActionsWallet({
|
|
81
|
+
client: turnkeyClient,
|
|
82
|
+
organizationId: 'org_123',
|
|
83
|
+
signWith: 'key_abc',
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
expect(actionsWallet).toBe(fakeWallet)
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
it('forwards lendProvider when provided to constructor', async () => {
|
|
90
|
+
const turnkeyClient = {} as unknown as TurnkeySDKClientBase
|
|
91
|
+
const mockLendProvider = {} as unknown as LendProvider<LendConfig>
|
|
92
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
93
|
+
mockChainManager,
|
|
94
|
+
mockLendProvider,
|
|
95
|
+
)
|
|
96
|
+
const spyTurnkeyWalletCreate = vi
|
|
97
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
98
|
+
.mockResolvedValueOnce({
|
|
99
|
+
address: '0xabc',
|
|
100
|
+
} as unknown as TurnkeyWallet)
|
|
101
|
+
|
|
102
|
+
await provider.toActionsWallet({
|
|
103
|
+
client: turnkeyClient,
|
|
104
|
+
organizationId: 'org_123',
|
|
105
|
+
signWith: 'key_abc',
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
109
|
+
expect.objectContaining({
|
|
110
|
+
lendProvider: mockLendProvider,
|
|
111
|
+
}),
|
|
112
|
+
)
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
describe('createSigner', () => {
|
|
117
|
+
it('should delegate to createSigner utility with correct params', async () => {
|
|
118
|
+
const provider = new TurnkeyHostedWalletProvider(mockChainManager)
|
|
119
|
+
const turnkeyClient = {} as unknown as TurnkeySDKClientBase
|
|
120
|
+
|
|
121
|
+
const mockSigner = {
|
|
122
|
+
address: '0xabc',
|
|
123
|
+
type: 'local',
|
|
124
|
+
} as unknown as LocalAccount
|
|
125
|
+
|
|
126
|
+
const createSignerSpy = vi
|
|
127
|
+
.spyOn(createSignerUtil, 'createSigner')
|
|
128
|
+
.mockResolvedValueOnce(mockSigner)
|
|
129
|
+
|
|
130
|
+
const params = {
|
|
131
|
+
client: turnkeyClient,
|
|
132
|
+
organizationId: 'org_123',
|
|
133
|
+
signWith: 'key_abc',
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
const signer = await provider.createSigner(params)
|
|
137
|
+
|
|
138
|
+
expect(createSignerSpy).toHaveBeenCalledWith(params)
|
|
139
|
+
expect(signer).toBe(mockSigner)
|
|
140
|
+
})
|
|
141
|
+
})
|
|
142
|
+
})
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Wallet as DynamicWallet } from '@dynamic-labs/wallet-connector-core'
|
|
2
|
+
import type { ConnectedWallet } from '@privy-io/react-auth'
|
|
3
|
+
import type { TurnkeySDKClientBase } from '@turnkey/react-wallet-kit'
|
|
4
|
+
|
|
5
|
+
import type { HostedWalletProvidersSchema } from '@/wallet/core/providers/hosted/types/index.js'
|
|
6
|
+
import type { DynamicHostedWalletProvider } from '@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js'
|
|
7
|
+
import type { PrivyHostedWalletProvider } from '@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
8
|
+
import type { TurnkeyHostedWalletProvider } from '@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* React provider type keys
|
|
12
|
+
* @description
|
|
13
|
+
* Narrow union of provider identifiers supported in the React/browser environment.
|
|
14
|
+
* Uses an intersection of the keys from each map to help keep maps in sync
|
|
15
|
+
* at compile time.
|
|
16
|
+
*/
|
|
17
|
+
export type ReactProviderTypes = keyof ReactOptionsMap &
|
|
18
|
+
keyof ReactHostedProviderInstanceMap
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Configuration options per React hosted wallet provider
|
|
22
|
+
* @description
|
|
23
|
+
* Strongly-typed configuration inputs passed to each provider factory when
|
|
24
|
+
* creating a hosted wallet provider for React. The Dynamic provider has no
|
|
25
|
+
* build-time options.
|
|
26
|
+
*/
|
|
27
|
+
export interface ReactOptionsMap {
|
|
28
|
+
dynamic: undefined
|
|
29
|
+
privy: undefined
|
|
30
|
+
turnkey: undefined
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Options for converting a Dynamic hosted wallet to an Actions wallet
|
|
35
|
+
* @description Parameters for converting a hosted wallet to an Actions wallet
|
|
36
|
+
* @property wallet Dynamic wallet instance obtained from the Dynamic connector
|
|
37
|
+
*/
|
|
38
|
+
export type DynamicHostedWalletToActionsWalletOptions = {
|
|
39
|
+
wallet: DynamicWallet
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Options for converting a Privy hosted wallet to an Actions wallet
|
|
44
|
+
* @description Parameters for converting a Privy hosted wallet to an Actions wallet
|
|
45
|
+
* @property connectedWallet Privy ConnectedWallet instance from @privy-io/react-auth
|
|
46
|
+
*/
|
|
47
|
+
export type PrivyHostedWalletToActionsWalletOptions = {
|
|
48
|
+
connectedWallet: ConnectedWallet
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Options for converting a Turnkey hosted wallet to an Actions wallet
|
|
53
|
+
* @description Parameters for converting a hosted wallet to an Actions wallet
|
|
54
|
+
* @property signWith This can be a wallet account address, private key address, or private key ID.
|
|
55
|
+
* @property ethereumAddress Ethereum address to use for this account, in the case that a private key ID is used to sign.
|
|
56
|
+
* If left undefined, `createSigner` will fetch it from the Turnkey API. We recommend setting this if you're using a passkey
|
|
57
|
+
* client, so that your users are not prompted for a passkey signature just to fetch their address. You may leave this
|
|
58
|
+
* undefined if using an API key client.
|
|
59
|
+
*/
|
|
60
|
+
export type TurnkeyHostedWalletToActionsWalletOptions = {
|
|
61
|
+
client: TurnkeySDKClientBase
|
|
62
|
+
organizationId: string
|
|
63
|
+
signWith: string
|
|
64
|
+
ethereumAddress?: string
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* React/browser hosted wallet registry
|
|
69
|
+
* @description Registers browser-only providers for client apps.
|
|
70
|
+
*/
|
|
71
|
+
export type ReactHostedProviderInstanceMap = {
|
|
72
|
+
dynamic: DynamicHostedWalletProvider
|
|
73
|
+
privy: PrivyHostedWalletProvider
|
|
74
|
+
turnkey: TurnkeyHostedWalletProvider
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Parameters required to convert each hosted wallet to an Actions wallet (React)
|
|
79
|
+
* @description Provider-specific, caller-supplied data needed by `toActionsWallet`.
|
|
80
|
+
*/
|
|
81
|
+
export type ReactToActionsOptionsMap = {
|
|
82
|
+
dynamic: DynamicHostedWalletToActionsWalletOptions
|
|
83
|
+
privy: PrivyHostedWalletToActionsWalletOptions
|
|
84
|
+
turnkey: TurnkeyHostedWalletToActionsWalletOptions
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Complete React hosted wallet providers schema
|
|
89
|
+
* @description
|
|
90
|
+
* Bundles provider type keys, concrete provider instances, creation configs,
|
|
91
|
+
* and `toActionsWallet` parameter types for the React environment.
|
|
92
|
+
* This schema is used to type `Actions` and its registries without widening
|
|
93
|
+
* to generic `string` keys.
|
|
94
|
+
*/
|
|
95
|
+
export type ReactHostedWalletProvidersSchema = HostedWalletProvidersSchema<
|
|
96
|
+
ReactProviderTypes,
|
|
97
|
+
ReactHostedProviderInstanceMap,
|
|
98
|
+
ReactOptionsMap,
|
|
99
|
+
ReactToActionsOptionsMap
|
|
100
|
+
>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
2
|
+
import { DynamicHostedWalletProvider } from '@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js'
|
|
3
|
+
import { PrivyHostedWalletProvider } from '@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
4
|
+
import { TurnkeyHostedWalletProvider } from '@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
5
|
+
import type {
|
|
6
|
+
ReactHostedProviderInstanceMap,
|
|
7
|
+
ReactOptionsMap,
|
|
8
|
+
ReactProviderTypes,
|
|
9
|
+
} from '@/wallet/react/providers/hosted/types/index.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* React hosted wallet provider registry
|
|
13
|
+
* @description
|
|
14
|
+
* Environment-scoped registry that binds React/browser provider keys to their
|
|
15
|
+
* factory implementations. This ensures browser-only hosted providers are
|
|
16
|
+
* discoverable at runtime without importing Node-only code. The registry
|
|
17
|
+
* pre-registers 'dynamic' and 'privy' providers and can be extended with
|
|
18
|
+
* additional providers via `register`.
|
|
19
|
+
*/
|
|
20
|
+
export class ReactHostedWalletProviderRegistry extends HostedWalletProviderRegistry<
|
|
21
|
+
ReactHostedProviderInstanceMap,
|
|
22
|
+
ReactOptionsMap,
|
|
23
|
+
ReactProviderTypes
|
|
24
|
+
> {
|
|
25
|
+
public constructor() {
|
|
26
|
+
super()
|
|
27
|
+
this.register<'dynamic'>({
|
|
28
|
+
type: 'dynamic',
|
|
29
|
+
validateOptions(_options): _options is ReactOptionsMap['dynamic'] {
|
|
30
|
+
return true
|
|
31
|
+
},
|
|
32
|
+
create({ chainManager, lendProvider }, _options) {
|
|
33
|
+
return new DynamicHostedWalletProvider(chainManager, lendProvider)
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
this.register<'privy'>({
|
|
38
|
+
type: 'privy',
|
|
39
|
+
validateOptions(_options): _options is ReactOptionsMap['privy'] {
|
|
40
|
+
return true
|
|
41
|
+
},
|
|
42
|
+
create({ chainManager, lendProvider }, _options) {
|
|
43
|
+
return new PrivyHostedWalletProvider(chainManager, lendProvider)
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
this.register<'turnkey'>({
|
|
48
|
+
type: 'turnkey',
|
|
49
|
+
validateOptions(_options): _options is ReactOptionsMap['turnkey'] {
|
|
50
|
+
return true
|
|
51
|
+
},
|
|
52
|
+
create({ chainManager, lendProvider }, _options) {
|
|
53
|
+
return new TurnkeyHostedWalletProvider(chainManager, lendProvider)
|
|
54
|
+
},
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
}
|
package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { unichain } from 'viem/chains'
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
6
|
+
import { DynamicHostedWalletProvider } from '@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js'
|
|
7
|
+
import { PrivyHostedWalletProvider } from '@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
8
|
+
import { TurnkeyHostedWalletProvider } from '@/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
9
|
+
import type { ReactOptionsMap } from '@/wallet/react/providers/hosted/types/index.js'
|
|
10
|
+
import { ReactHostedWalletProviderRegistry } from '@/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js'
|
|
11
|
+
|
|
12
|
+
// Mock the dynamic provider to avoid importing any browser-only dependencies
|
|
13
|
+
vi.mock(
|
|
14
|
+
'@/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js',
|
|
15
|
+
async () => {
|
|
16
|
+
const { DynamicHostedWalletProviderMock } = await import(
|
|
17
|
+
'@/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js'
|
|
18
|
+
)
|
|
19
|
+
return { DynamicHostedWalletProvider: DynamicHostedWalletProviderMock }
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
// Mock the privy provider to avoid importing any browser-only dependencies
|
|
24
|
+
vi.mock(
|
|
25
|
+
'@/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js',
|
|
26
|
+
async () => {
|
|
27
|
+
const { PrivyHostedWalletProviderMock } = await import(
|
|
28
|
+
'@/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js'
|
|
29
|
+
)
|
|
30
|
+
return { PrivyHostedWalletProvider: PrivyHostedWalletProviderMock }
|
|
31
|
+
},
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
describe('ReactHostedWalletProviderRegistry', () => {
|
|
35
|
+
const mockChainManager = new MockChainManager({
|
|
36
|
+
supportedChains: [unichain.id],
|
|
37
|
+
}) as unknown as ChainManager
|
|
38
|
+
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
vi.clearAllMocks()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('returns dynamic factory and validates options', () => {
|
|
44
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
45
|
+
const factory = registry.getFactory('dynamic')
|
|
46
|
+
|
|
47
|
+
expect(factory.type).toBe('dynamic')
|
|
48
|
+
// Dynamic options are currently empty; any object should validate to true
|
|
49
|
+
expect(
|
|
50
|
+
factory.validateOptions?.(undefined as ReactOptionsMap['dynamic']),
|
|
51
|
+
).toBe(true)
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('creates a DynamicHostedWalletProvider instance', () => {
|
|
55
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
56
|
+
const factory = registry.getFactory('dynamic')
|
|
57
|
+
|
|
58
|
+
const provider = factory.create(
|
|
59
|
+
{ chainManager: mockChainManager },
|
|
60
|
+
undefined as ReactOptionsMap['dynamic'],
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
expect(provider).toBeInstanceOf(DynamicHostedWalletProvider)
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
it('returns privy factory and validates options', () => {
|
|
67
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
68
|
+
const factory = registry.getFactory('privy')
|
|
69
|
+
|
|
70
|
+
expect(factory.type).toBe('privy')
|
|
71
|
+
expect(
|
|
72
|
+
factory.validateOptions?.(undefined as ReactOptionsMap['privy']),
|
|
73
|
+
).toBe(true)
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('creates a PrivyHostedWalletProvider instance', () => {
|
|
77
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
78
|
+
const factory = registry.getFactory('privy')
|
|
79
|
+
|
|
80
|
+
const provider = factory.create(
|
|
81
|
+
{ chainManager: mockChainManager },
|
|
82
|
+
undefined as ReactOptionsMap['privy'],
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
expect(provider).toBeInstanceOf(PrivyHostedWalletProvider)
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
it('returns turnkey factory and validates options', () => {
|
|
89
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
90
|
+
const factory = registry.getFactory('turnkey')
|
|
91
|
+
|
|
92
|
+
expect(factory.type).toBe('turnkey')
|
|
93
|
+
expect(
|
|
94
|
+
factory.validateOptions?.(undefined as ReactOptionsMap['turnkey']),
|
|
95
|
+
).toBe(true)
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('creates a TurnkeyHostedWalletProvider instance', () => {
|
|
99
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
100
|
+
const factory = registry.getFactory('turnkey')
|
|
101
|
+
|
|
102
|
+
const provider = factory.create(
|
|
103
|
+
{ chainManager: mockChainManager },
|
|
104
|
+
undefined as ReactOptionsMap['turnkey'],
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
expect(provider).toBeInstanceOf(TurnkeyHostedWalletProvider)
|
|
108
|
+
})
|
|
109
|
+
|
|
110
|
+
it('throws for unknown provider type', () => {
|
|
111
|
+
const registry = new ReactHostedWalletProviderRegistry()
|
|
112
|
+
// @ts-expect-error: testing runtime error for unknown type
|
|
113
|
+
expect(() => registry.getFactory('unknown')).toThrow(
|
|
114
|
+
'Unknown hosted wallet provider: unknown',
|
|
115
|
+
)
|
|
116
|
+
})
|
|
117
|
+
})
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type Address, 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 { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
|
|
6
|
+
import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
|
|
7
|
+
import { createSigner } from '@/wallet/react/wallets/hosted/dynamic/utils/createSigner.js'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Dynamic wallet implementation
|
|
11
|
+
* @description Wallet implementation using the Dynamic Labs wallet SDK.
|
|
12
|
+
*/
|
|
13
|
+
export class DynamicWallet extends EOAWallet {
|
|
14
|
+
public signer!: LocalAccount
|
|
15
|
+
public address!: Address
|
|
16
|
+
private readonly dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new Dynamic wallet
|
|
20
|
+
* @param chainManager - Chain manager for RPC, chain info, and transports
|
|
21
|
+
* @param dynamicWallet - Dynamic Labs wallet instance (EVM)
|
|
22
|
+
*/
|
|
23
|
+
private constructor(
|
|
24
|
+
chainManager: ChainManager,
|
|
25
|
+
dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet'],
|
|
26
|
+
lendProvider?: LendProvider<LendConfig>,
|
|
27
|
+
) {
|
|
28
|
+
super(chainManager, lendProvider)
|
|
29
|
+
this.dynamicWallet = dynamicWallet
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static async create(params: {
|
|
33
|
+
dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
34
|
+
chainManager: ChainManager
|
|
35
|
+
lendProvider?: LendProvider<LendConfig>
|
|
36
|
+
}): Promise<DynamicWallet> {
|
|
37
|
+
const wallet = new DynamicWallet(
|
|
38
|
+
params.chainManager,
|
|
39
|
+
params.dynamicWallet,
|
|
40
|
+
params.lendProvider,
|
|
41
|
+
)
|
|
42
|
+
await wallet.initialize()
|
|
43
|
+
return wallet
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Initialize the DynamicWallet by creating the signer account
|
|
48
|
+
*/
|
|
49
|
+
protected async performInitialization() {
|
|
50
|
+
this.signer = await this.createSigner()
|
|
51
|
+
this.address = this.signer.address
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Create a LocalAccount from this Dynamic wallet
|
|
56
|
+
* @description Converts the Dynamic wallet into a viem-compatible LocalAccount that can sign
|
|
57
|
+
* messages and transactions. The returned account uses Dynamic's signing infrastructure
|
|
58
|
+
* under the hood while providing a standard viem interface.
|
|
59
|
+
* @returns Promise resolving to a LocalAccount configured for signing operations
|
|
60
|
+
* @throws Error if wallet retrieval fails or signing operations are not supported
|
|
61
|
+
*/
|
|
62
|
+
private async createSigner(): Promise<LocalAccount> {
|
|
63
|
+
return createSigner({
|
|
64
|
+
wallet: this.dynamicWallet,
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { vi } from 'vitest'
|
|
2
|
+
|
|
3
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
4
|
+
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
5
|
+
import type { DynamicHostedWalletToActionsWalletOptions } from '@/wallet/react/providers/hosted/types/index.js'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Minimal mock for DynamicWallet used in React tests
|
|
9
|
+
* @description
|
|
10
|
+
* Provides a static `create` spy that returns a stubbed `Wallet`, avoiding
|
|
11
|
+
* browser-only dependencies. Use with `vi.mock` to replace the real module.
|
|
12
|
+
*/
|
|
13
|
+
export class DynamicWalletMock {
|
|
14
|
+
static readonly create = vi.fn(
|
|
15
|
+
async (_params: {
|
|
16
|
+
chainManager: ChainManager
|
|
17
|
+
dynamicWallet: DynamicHostedWalletToActionsWalletOptions['wallet']
|
|
18
|
+
}): Promise<Wallet> => {
|
|
19
|
+
return {} as unknown as Wallet
|
|
20
|
+
},
|
|
21
|
+
)
|
|
22
|
+
}
|