@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
package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import type { TurnkeyClient } from '@turnkey/http'
|
|
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/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
10
|
+
import { TurnkeyWallet } from '@/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js'
|
|
11
|
+
import * as createSignerUtil from '@/wallet/node/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 TurnkeyClient
|
|
21
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
22
|
+
turnkeyClient,
|
|
23
|
+
mockChainManager,
|
|
24
|
+
)
|
|
25
|
+
const spyTurnkeyWalletCreate = vi
|
|
26
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
27
|
+
.mockResolvedValueOnce({
|
|
28
|
+
address: '0xabc',
|
|
29
|
+
} as unknown as TurnkeyWallet)
|
|
30
|
+
|
|
31
|
+
await provider.toActionsWallet({
|
|
32
|
+
organizationId: 'org_123',
|
|
33
|
+
signWith: 'key_abc',
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
37
|
+
expect.objectContaining({
|
|
38
|
+
client: turnkeyClient,
|
|
39
|
+
organizationId: 'org_123',
|
|
40
|
+
signWith: 'key_abc',
|
|
41
|
+
ethereumAddress: undefined,
|
|
42
|
+
chainManager: mockChainManager,
|
|
43
|
+
}),
|
|
44
|
+
)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('forwards ethereumAddress when provided', async () => {
|
|
48
|
+
const turnkeyClient = {} as unknown as TurnkeyClient
|
|
49
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
50
|
+
turnkeyClient,
|
|
51
|
+
mockChainManager,
|
|
52
|
+
)
|
|
53
|
+
const spyTurnkeyWalletCreate = vi
|
|
54
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
55
|
+
.mockResolvedValueOnce({
|
|
56
|
+
address: '0xabc',
|
|
57
|
+
} as unknown as TurnkeyWallet)
|
|
58
|
+
|
|
59
|
+
await provider.toActionsWallet({
|
|
60
|
+
organizationId: 'org_123',
|
|
61
|
+
signWith: 'key_abc',
|
|
62
|
+
ethereumAddress: '0x123',
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
66
|
+
expect.objectContaining({
|
|
67
|
+
client: turnkeyClient,
|
|
68
|
+
organizationId: 'org_123',
|
|
69
|
+
signWith: 'key_abc',
|
|
70
|
+
ethereumAddress: '0x123',
|
|
71
|
+
chainManager: mockChainManager,
|
|
72
|
+
}),
|
|
73
|
+
)
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
it('returns the created TurnkeyWallet instance', async () => {
|
|
77
|
+
const turnkeyClient = {} as unknown as TurnkeyClient
|
|
78
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
79
|
+
turnkeyClient,
|
|
80
|
+
mockChainManager,
|
|
81
|
+
)
|
|
82
|
+
const fakeWallet = {
|
|
83
|
+
address: '0xabc',
|
|
84
|
+
} as unknown as TurnkeyWallet
|
|
85
|
+
vi.spyOn(TurnkeyWallet, 'create').mockResolvedValueOnce(fakeWallet)
|
|
86
|
+
|
|
87
|
+
const actionsWallet = await provider.toActionsWallet({
|
|
88
|
+
organizationId: 'org_123',
|
|
89
|
+
signWith: 'key_abc',
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
expect(actionsWallet).toBe(fakeWallet)
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('forwards lendProvider when provided to constructor', async () => {
|
|
96
|
+
const turnkeyClient = {} as unknown as TurnkeyClient
|
|
97
|
+
const mockLendProvider = {} as LendProvider<LendConfig>
|
|
98
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
99
|
+
turnkeyClient,
|
|
100
|
+
mockChainManager,
|
|
101
|
+
mockLendProvider,
|
|
102
|
+
)
|
|
103
|
+
const spyTurnkeyWalletCreate = vi
|
|
104
|
+
.spyOn(TurnkeyWallet, 'create')
|
|
105
|
+
.mockResolvedValueOnce({
|
|
106
|
+
address: '0xabc',
|
|
107
|
+
} as unknown as TurnkeyWallet)
|
|
108
|
+
|
|
109
|
+
await provider.toActionsWallet({
|
|
110
|
+
organizationId: 'org_123',
|
|
111
|
+
signWith: 'key_abc',
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
expect(spyTurnkeyWalletCreate).toHaveBeenCalledWith(
|
|
115
|
+
expect.objectContaining({
|
|
116
|
+
lendProvider: mockLendProvider,
|
|
117
|
+
}),
|
|
118
|
+
)
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
describe('createSigner', () => {
|
|
123
|
+
it('should delegate to createSigner utility with correct params', async () => {
|
|
124
|
+
const turnkeyClient = {} as unknown as TurnkeyClient
|
|
125
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
126
|
+
turnkeyClient,
|
|
127
|
+
mockChainManager,
|
|
128
|
+
)
|
|
129
|
+
const mockSigner = {
|
|
130
|
+
address: '0xabc',
|
|
131
|
+
type: 'local',
|
|
132
|
+
} as unknown as LocalAccount
|
|
133
|
+
const createSignerSpy = vi
|
|
134
|
+
.spyOn(createSignerUtil, 'createSigner')
|
|
135
|
+
.mockResolvedValueOnce(mockSigner)
|
|
136
|
+
|
|
137
|
+
const params = {
|
|
138
|
+
organizationId: 'org_123',
|
|
139
|
+
signWith: 'key_abc',
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const signer = await provider.createSigner(params)
|
|
143
|
+
|
|
144
|
+
expect(createSignerSpy).toHaveBeenCalledWith({
|
|
145
|
+
client: turnkeyClient,
|
|
146
|
+
organizationId: 'org_123',
|
|
147
|
+
signWith: 'key_abc',
|
|
148
|
+
})
|
|
149
|
+
expect(signer).toBe(mockSigner)
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
it('should forward ethereumAddress when provided', async () => {
|
|
153
|
+
const turnkeyClient = {} as unknown as TurnkeyClient
|
|
154
|
+
const provider = new TurnkeyHostedWalletProvider(
|
|
155
|
+
turnkeyClient,
|
|
156
|
+
mockChainManager,
|
|
157
|
+
)
|
|
158
|
+
const mockSigner = {
|
|
159
|
+
address: '0x123',
|
|
160
|
+
type: 'local',
|
|
161
|
+
} as unknown as LocalAccount
|
|
162
|
+
const createSignerSpy = vi
|
|
163
|
+
.spyOn(createSignerUtil, 'createSigner')
|
|
164
|
+
.mockResolvedValueOnce(mockSigner)
|
|
165
|
+
|
|
166
|
+
const params = {
|
|
167
|
+
organizationId: 'org_123',
|
|
168
|
+
signWith: 'key_abc',
|
|
169
|
+
ethereumAddress: '0x123',
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
await provider.createSigner(params)
|
|
173
|
+
|
|
174
|
+
expect(createSignerSpy).toHaveBeenCalledWith({
|
|
175
|
+
client: turnkeyClient,
|
|
176
|
+
organizationId: 'org_123',
|
|
177
|
+
signWith: 'key_abc',
|
|
178
|
+
ethereumAddress: '0x123',
|
|
179
|
+
})
|
|
180
|
+
})
|
|
181
|
+
})
|
|
182
|
+
})
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { PrivyClient } from '@privy-io/server-auth'
|
|
2
|
+
import type { TurnkeySDKClientBase } from '@turnkey/core'
|
|
3
|
+
import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http'
|
|
4
|
+
import type { TurnkeyServerClient } from '@turnkey/sdk-server'
|
|
5
|
+
import type { Address } from 'viem'
|
|
6
|
+
|
|
7
|
+
import type { HostedWalletProvidersSchema } from '@/wallet/core/providers/hosted/types/index.js'
|
|
8
|
+
import type { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
9
|
+
import type { TurnkeyHostedWalletProvider } from '@/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Node provider type keys
|
|
13
|
+
* @description
|
|
14
|
+
* Narrow union of provider identifiers supported in the Node environment.
|
|
15
|
+
* Uses an intersection of the keys from each map to guarantee that all maps
|
|
16
|
+
* stay in sync (options, instances, and toActions options) at compile time.
|
|
17
|
+
*/
|
|
18
|
+
export type NodeProviderTypes = keyof NodeOptionsMap &
|
|
19
|
+
keyof NodeHostedProviderInstanceMap &
|
|
20
|
+
keyof NodeToActionsOptionsMap
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Configuration options per Node hosted wallet provider
|
|
24
|
+
* @description
|
|
25
|
+
* Strongly-typed configuration inputs passed to each provider factory when
|
|
26
|
+
* creating a hosted wallet provider for Node.
|
|
27
|
+
*/
|
|
28
|
+
export interface NodeOptionsMap {
|
|
29
|
+
/**
|
|
30
|
+
* Privy provider configuration
|
|
31
|
+
* @property privyClient Server-side Privy client instance used to query/create wallets
|
|
32
|
+
*/
|
|
33
|
+
privy: { privyClient: PrivyClient }
|
|
34
|
+
/**
|
|
35
|
+
* Turnkey provider configuration
|
|
36
|
+
* @property client Turnkey SDK/HTTP client used to sign and manage keys
|
|
37
|
+
* @property organizationId Turnkey organization identifier that owns the key material
|
|
38
|
+
*/
|
|
39
|
+
turnkey: {
|
|
40
|
+
client: TurnkeyHttpClient | TurnkeyServerClient | TurnkeySDKClientBase
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Options for converting a Turnkey hosted wallet to an Actions wallet
|
|
46
|
+
* @description Parameters for converting a hosted wallet to an Actions wallet
|
|
47
|
+
* @property signWith This can be a wallet account address, private key address, or private key ID.
|
|
48
|
+
* @property ethereumAddress Ethereum address to use for this account, in the case that a private key ID is used to sign.
|
|
49
|
+
* If left undefined, `createAccount` will fetch it from the Turnkey API. We recommend setting this if you're using a passkey
|
|
50
|
+
* client, so that your users are not prompted for a passkey signature just to fetch their address. You may leave this
|
|
51
|
+
* undefined if using an API key client.
|
|
52
|
+
*/
|
|
53
|
+
export type TurnkeyHostedWalletToActionsWalletOptions = {
|
|
54
|
+
organizationId: string
|
|
55
|
+
signWith: string
|
|
56
|
+
ethereumAddress?: string
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Options for converting a Privy hosted wallet to an Actions wallet
|
|
61
|
+
* @description Parameters for converting a hosted wallet to an Actions wallet
|
|
62
|
+
* @property walletId Privy wallet identifier
|
|
63
|
+
* @property address Ethereum address of the wallet
|
|
64
|
+
*/
|
|
65
|
+
export type PrivyHostedWalletToActionsWalletOptions = {
|
|
66
|
+
walletId: string
|
|
67
|
+
address: Address
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Node environment hosted wallet registry.
|
|
72
|
+
* Registers server-safe providers for use in Node.
|
|
73
|
+
*/
|
|
74
|
+
export type NodeHostedProviderInstanceMap = {
|
|
75
|
+
privy: PrivyHostedWalletProvider
|
|
76
|
+
turnkey: TurnkeyHostedWalletProvider
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Parameters required to convert each hosted wallet to an Actions wallet (Node)
|
|
81
|
+
* @description
|
|
82
|
+
* Provider-specific, caller-supplied data needed by `toActionsWallet`.
|
|
83
|
+
*/
|
|
84
|
+
export type NodeToActionsOptionsMap = {
|
|
85
|
+
privy: PrivyHostedWalletToActionsWalletOptions
|
|
86
|
+
turnkey: TurnkeyHostedWalletToActionsWalletOptions
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Complete Node hosted wallet providers schema
|
|
91
|
+
* @description
|
|
92
|
+
* Bundles provider type keys, concrete provider instances, creation configs,
|
|
93
|
+
* and `toActionsWallet` parameter types for the Node environment.
|
|
94
|
+
* This schema is used to type `Actions` and its registries without widening
|
|
95
|
+
* to generic `string` keys.
|
|
96
|
+
*/
|
|
97
|
+
export type NodeHostedWalletProvidersSchema = HostedWalletProvidersSchema<
|
|
98
|
+
NodeProviderTypes,
|
|
99
|
+
NodeHostedProviderInstanceMap,
|
|
100
|
+
NodeOptionsMap,
|
|
101
|
+
NodeToActionsOptionsMap
|
|
102
|
+
>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { PrivyClient } from '@privy-io/server-auth'
|
|
2
|
+
import { type Address, type LocalAccount } from 'viem'
|
|
3
|
+
|
|
4
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
6
|
+
import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
|
|
7
|
+
import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Privy wallet implementation
|
|
11
|
+
* @description Wallet implementation using Privy service
|
|
12
|
+
*/
|
|
13
|
+
export class PrivyWallet extends EOAWallet {
|
|
14
|
+
public walletId: string
|
|
15
|
+
public signer!: LocalAccount
|
|
16
|
+
public readonly address: Address
|
|
17
|
+
private privyClient: PrivyClient
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Create a new Privy wallet provider
|
|
21
|
+
* @param appId - Privy application ID
|
|
22
|
+
* @param appSecret - Privy application secret
|
|
23
|
+
* @param actions - Actions instance for accessing configured providers
|
|
24
|
+
*/
|
|
25
|
+
private constructor(
|
|
26
|
+
privyClient: PrivyClient,
|
|
27
|
+
walletId: string,
|
|
28
|
+
address: Address,
|
|
29
|
+
chainManager: ChainManager,
|
|
30
|
+
lendProvider?: LendProvider<LendConfig>,
|
|
31
|
+
) {
|
|
32
|
+
super(chainManager, lendProvider)
|
|
33
|
+
this.privyClient = privyClient
|
|
34
|
+
this.walletId = walletId
|
|
35
|
+
this.address = address
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static async create(params: {
|
|
39
|
+
privyClient: PrivyClient
|
|
40
|
+
walletId: string
|
|
41
|
+
address: Address
|
|
42
|
+
chainManager: ChainManager
|
|
43
|
+
lendProvider?: LendProvider<LendConfig>
|
|
44
|
+
}): Promise<PrivyWallet> {
|
|
45
|
+
const wallet = new PrivyWallet(
|
|
46
|
+
params.privyClient,
|
|
47
|
+
params.walletId,
|
|
48
|
+
params.address,
|
|
49
|
+
params.chainManager,
|
|
50
|
+
params.lendProvider,
|
|
51
|
+
)
|
|
52
|
+
await wallet.initialize()
|
|
53
|
+
return wallet
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Initialize the PrivyWallet by creating the signer account
|
|
58
|
+
*/
|
|
59
|
+
protected async performInitialization() {
|
|
60
|
+
this.signer = await this.createSigner()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Create a LocalAccount from this Privy wallet
|
|
65
|
+
* @description Converts the Privy wallet into a viem-compatible LocalAccount that can sign
|
|
66
|
+
* messages and transactions. The returned account uses Privy's signing infrastructure
|
|
67
|
+
* under the hood while providing a standard viem interface.
|
|
68
|
+
* @returns Promise resolving to a LocalAccount configured for signing operations
|
|
69
|
+
* @throws Error if wallet retrieval fails or signing operations are not supported
|
|
70
|
+
*/
|
|
71
|
+
private async createSigner(): Promise<LocalAccount> {
|
|
72
|
+
return createSigner({
|
|
73
|
+
walletId: this.walletId,
|
|
74
|
+
address: this.address,
|
|
75
|
+
privyClient: this.privyClient,
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { PrivyClient } from '@privy-io/server-auth'
|
|
2
|
+
import { createViemAccount } from '@privy-io/server-auth/viem'
|
|
3
|
+
import {
|
|
4
|
+
type Address,
|
|
5
|
+
createWalletClient,
|
|
6
|
+
getAddress,
|
|
7
|
+
type LocalAccount,
|
|
8
|
+
type WalletClient,
|
|
9
|
+
} from 'viem'
|
|
10
|
+
import { unichain } from 'viem/chains'
|
|
11
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
12
|
+
|
|
13
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
14
|
+
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
15
|
+
import { createMockPrivyClient } from '@/test/MockPrivyClient.js'
|
|
16
|
+
import { getRandomAddress } from '@/test/utils.js'
|
|
17
|
+
import { PrivyWallet } from '@/wallet/node/wallets/hosted/privy/PrivyWallet.js'
|
|
18
|
+
|
|
19
|
+
vi.mock('viem', async () => ({
|
|
20
|
+
// @ts-ignore - importActual returns unknown
|
|
21
|
+
...(await vi.importActual('viem')),
|
|
22
|
+
createWalletClient: vi.fn(),
|
|
23
|
+
}))
|
|
24
|
+
|
|
25
|
+
vi.mock('viem/accounts', async () => ({
|
|
26
|
+
// @ts-ignore - importActual returns unknown
|
|
27
|
+
...(await vi.importActual('viem/accounts')),
|
|
28
|
+
toAccount: vi.fn(),
|
|
29
|
+
}))
|
|
30
|
+
|
|
31
|
+
vi.mock('@privy-io/server-auth/viem', async () => ({
|
|
32
|
+
// @ts-ignore - importActual returns unknown
|
|
33
|
+
...(await vi.importActual('@privy-io/server-auth/viem')),
|
|
34
|
+
createViemAccount: vi.fn(),
|
|
35
|
+
}))
|
|
36
|
+
|
|
37
|
+
const mockAddress = getRandomAddress()
|
|
38
|
+
const mockPrivyClient = createMockPrivyClient('test-app-id', 'test-app-secret')
|
|
39
|
+
const mockChainManager = new MockChainManager({
|
|
40
|
+
supportedChains: [130], // Unichain
|
|
41
|
+
}) as unknown as ChainManager
|
|
42
|
+
const mockLocalAccount = {
|
|
43
|
+
address: mockAddress,
|
|
44
|
+
signMessage: vi.fn(),
|
|
45
|
+
sign: vi.fn(),
|
|
46
|
+
signTransaction: vi.fn(),
|
|
47
|
+
signTypedData: vi.fn(),
|
|
48
|
+
} as unknown as LocalAccount
|
|
49
|
+
|
|
50
|
+
describe('PrivyWallet', () => {
|
|
51
|
+
it('should return the correct wallet ID', async () => {
|
|
52
|
+
const createdWallet = await mockPrivyClient.walletApi.createWallet({
|
|
53
|
+
chainType: 'ethereum',
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
const wallet = await createAndInitPrivyWallet({
|
|
57
|
+
address: getAddress(createdWallet.address),
|
|
58
|
+
walletId: createdWallet.id,
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
expect(wallet.walletId).toBe(createdWallet.id)
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it('should return the correct address', async () => {
|
|
65
|
+
const createdWallet = await mockPrivyClient.walletApi.createWallet({
|
|
66
|
+
chainType: 'ethereum',
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
const wallet = await createAndInitPrivyWallet({
|
|
70
|
+
address: getAddress(createdWallet.address),
|
|
71
|
+
walletId: createdWallet.id,
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
expect(wallet.address).toBe(createdWallet.address)
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
it('should create an account with correct configuration', async () => {
|
|
78
|
+
// Create a wallet using the mock client first
|
|
79
|
+
const createdWallet = await mockPrivyClient.walletApi.createWallet({
|
|
80
|
+
chainType: 'ethereum',
|
|
81
|
+
})
|
|
82
|
+
vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
|
|
83
|
+
const wallet = await createAndInitPrivyWallet({
|
|
84
|
+
address: getAddress(createdWallet.address),
|
|
85
|
+
walletId: createdWallet.id,
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
expect(createViemAccount).toHaveBeenCalledWith({
|
|
89
|
+
walletId: createdWallet.id,
|
|
90
|
+
address: createdWallet.address,
|
|
91
|
+
privy: mockPrivyClient,
|
|
92
|
+
})
|
|
93
|
+
expect(wallet.signer).toBe(mockLocalAccount)
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
it('should create a wallet client with correct configuration', async () => {
|
|
97
|
+
const createdWallet = await mockPrivyClient.walletApi.createWallet({
|
|
98
|
+
chainType: 'ethereum',
|
|
99
|
+
})
|
|
100
|
+
const wallet = await createAndInitPrivyWallet()
|
|
101
|
+
|
|
102
|
+
const mockWalletClient = {
|
|
103
|
+
account: mockLocalAccount,
|
|
104
|
+
address: createdWallet.address as Address,
|
|
105
|
+
} as unknown as WalletClient
|
|
106
|
+
vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
|
|
107
|
+
vi.mocked(createWalletClient).mockResolvedValue(mockWalletClient)
|
|
108
|
+
|
|
109
|
+
const walletClient = await wallet.walletClient(unichain.id)
|
|
110
|
+
|
|
111
|
+
expect(createWalletClient).toHaveBeenCalledOnce()
|
|
112
|
+
const callArgs = vi.mocked(createWalletClient).mock.calls[0][0]
|
|
113
|
+
expect(callArgs.account).toBe(mockLocalAccount)
|
|
114
|
+
expect(callArgs.chain).toBe(mockChainManager.getChain(unichain.id))
|
|
115
|
+
expect(walletClient).toBe(mockWalletClient)
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
async function createAndInitPrivyWallet(
|
|
120
|
+
params: {
|
|
121
|
+
privyClient?: PrivyClient
|
|
122
|
+
walletId?: string
|
|
123
|
+
address?: Address
|
|
124
|
+
chainManager?: ChainManager
|
|
125
|
+
} = {},
|
|
126
|
+
) {
|
|
127
|
+
const {
|
|
128
|
+
privyClient = mockPrivyClient,
|
|
129
|
+
walletId,
|
|
130
|
+
address,
|
|
131
|
+
chainManager = mockChainManager,
|
|
132
|
+
} = params
|
|
133
|
+
const createdWallet = await privyClient.walletApi.createWallet({
|
|
134
|
+
chainType: 'ethereum',
|
|
135
|
+
})
|
|
136
|
+
return PrivyWallet.create({
|
|
137
|
+
privyClient,
|
|
138
|
+
walletId: walletId ?? createdWallet.id,
|
|
139
|
+
address: address ?? getAddress(createdWallet.address),
|
|
140
|
+
chainManager,
|
|
141
|
+
})
|
|
142
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createViemAccount } from '@privy-io/server-auth/viem'
|
|
2
|
+
import type { Address, LocalAccount } from 'viem'
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
4
|
+
|
|
5
|
+
import { createMockPrivyClient } from '@/test/MockPrivyClient.js'
|
|
6
|
+
import { getRandomAddress } from '@/test/utils.js'
|
|
7
|
+
import { createSigner } from '@/wallet/node/wallets/hosted/privy/utils/createSigner.js'
|
|
8
|
+
|
|
9
|
+
vi.mock('@privy-io/server-auth/viem', async () => ({
|
|
10
|
+
// @ts-ignore - importActual returns unknown
|
|
11
|
+
...(await vi.importActual('@privy-io/server-auth/viem')),
|
|
12
|
+
createViemAccount: vi.fn(),
|
|
13
|
+
}))
|
|
14
|
+
|
|
15
|
+
describe('createSigner (Node Privy)', () => {
|
|
16
|
+
const mockAddress = getRandomAddress()
|
|
17
|
+
const mockPrivyClient = createMockPrivyClient(
|
|
18
|
+
'test-app-id',
|
|
19
|
+
'test-app-secret',
|
|
20
|
+
)
|
|
21
|
+
const mockLocalAccount = {
|
|
22
|
+
address: mockAddress,
|
|
23
|
+
signMessage: vi.fn(),
|
|
24
|
+
sign: vi.fn(),
|
|
25
|
+
signTransaction: vi.fn(),
|
|
26
|
+
signTypedData: vi.fn(),
|
|
27
|
+
} as unknown as LocalAccount
|
|
28
|
+
|
|
29
|
+
it('should create a LocalAccount with correct configuration', async () => {
|
|
30
|
+
const createdWallet = await mockPrivyClient.walletApi.createWallet({
|
|
31
|
+
chainType: 'ethereum',
|
|
32
|
+
})
|
|
33
|
+
vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount)
|
|
34
|
+
|
|
35
|
+
const signer = await createSigner({
|
|
36
|
+
privyClient: mockPrivyClient,
|
|
37
|
+
walletId: createdWallet.id,
|
|
38
|
+
address: createdWallet.address as Address,
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
expect(createViemAccount).toHaveBeenCalledWith({
|
|
42
|
+
walletId: createdWallet.id,
|
|
43
|
+
address: createdWallet.address,
|
|
44
|
+
privy: mockPrivyClient,
|
|
45
|
+
})
|
|
46
|
+
expect(signer).toBe(mockLocalAccount)
|
|
47
|
+
})
|
|
48
|
+
})
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { GetViemAccountInputType } from '@privy-io/server-auth/viem'
|
|
2
|
+
import { createViemAccount } from '@privy-io/server-auth/viem'
|
|
3
|
+
import type { LocalAccount } from 'viem'
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
NodeOptionsMap,
|
|
7
|
+
PrivyHostedWalletToActionsWalletOptions,
|
|
8
|
+
} from '@/wallet/node/providers/hosted/types/index.js'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Create a LocalAccount from a Privy wallet
|
|
12
|
+
* @description Converts the Privy wallet into a viem-compatible LocalAccount that can sign
|
|
13
|
+
* messages and transactions. The returned account uses Privy's signing infrastructure
|
|
14
|
+
* under the hood while providing a standard viem interface.
|
|
15
|
+
* @param params.walletId - Privy wallet identifier
|
|
16
|
+
* @param params.address - Ethereum address of the wallet
|
|
17
|
+
* @param params.privyClient - Privy client instance
|
|
18
|
+
* @returns Promise resolving to a LocalAccount configured for signing operations
|
|
19
|
+
* @throws Error if wallet retrieval fails or signing operations are not supported
|
|
20
|
+
*/
|
|
21
|
+
export async function createSigner(
|
|
22
|
+
params: PrivyHostedWalletToActionsWalletOptions & NodeOptionsMap['privy'],
|
|
23
|
+
): Promise<LocalAccount> {
|
|
24
|
+
const { walletId, address, privyClient } = params
|
|
25
|
+
const account = await createViemAccount({
|
|
26
|
+
walletId,
|
|
27
|
+
address,
|
|
28
|
+
// TODO: Fix this type error
|
|
29
|
+
privy: privyClient as unknown as GetViemAccountInputType['privy'],
|
|
30
|
+
})
|
|
31
|
+
return account
|
|
32
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { TurnkeySDKClientBase } from '@turnkey/core'
|
|
2
|
+
import type { TurnkeyClient } from '@turnkey/http'
|
|
3
|
+
import type { TurnkeyServerClient } from '@turnkey/sdk-server'
|
|
4
|
+
import type { Address, LocalAccount } from 'viem'
|
|
5
|
+
|
|
6
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
+
import type { LendConfig, LendProvider } from '@/types/lend/index.js'
|
|
8
|
+
import { EOAWallet } from '@/wallet/core/wallets/eoa/EOAWallet.js'
|
|
9
|
+
import { createSigner } from '@/wallet/node/wallets/hosted/turnkey/utils/createSigner.js'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Turnkey wallet implementation
|
|
13
|
+
* @description Wallet implementation using Turnkey service
|
|
14
|
+
*/
|
|
15
|
+
export class TurnkeyWallet extends EOAWallet {
|
|
16
|
+
public address!: Address
|
|
17
|
+
public signer!: LocalAccount
|
|
18
|
+
/**
|
|
19
|
+
* Turnkey client instance (HTTP, server, or core SDK base)
|
|
20
|
+
*/
|
|
21
|
+
private readonly client:
|
|
22
|
+
| TurnkeyClient
|
|
23
|
+
| TurnkeyServerClient
|
|
24
|
+
| TurnkeySDKClientBase
|
|
25
|
+
/**
|
|
26
|
+
* Turnkey organization ID that owns the signing key
|
|
27
|
+
*/
|
|
28
|
+
private readonly organizationId: string
|
|
29
|
+
/**
|
|
30
|
+
* This can be a wallet account address, private key address, or private key ID.
|
|
31
|
+
*/
|
|
32
|
+
private readonly signWith: string
|
|
33
|
+
/**
|
|
34
|
+
* Ethereum address to use for this account, in the case that a private key ID is used to sign.
|
|
35
|
+
* If left undefined, `createAccount` will fetch it from the Turnkey API.
|
|
36
|
+
* We recommend setting this if you're using a passkey client, so that your users are not prompted for a passkey signature just to fetch their address.
|
|
37
|
+
* You may leave this undefined if using an API key client.
|
|
38
|
+
*/
|
|
39
|
+
private readonly ethereumAddress?: string
|
|
40
|
+
|
|
41
|
+
private constructor(params: {
|
|
42
|
+
chainManager: ChainManager
|
|
43
|
+
client: TurnkeyClient | TurnkeyServerClient | TurnkeySDKClientBase
|
|
44
|
+
organizationId: string
|
|
45
|
+
signWith: string
|
|
46
|
+
ethereumAddress?: string
|
|
47
|
+
lendProvider?: LendProvider<LendConfig>
|
|
48
|
+
}) {
|
|
49
|
+
const {
|
|
50
|
+
chainManager,
|
|
51
|
+
client,
|
|
52
|
+
organizationId,
|
|
53
|
+
signWith,
|
|
54
|
+
ethereumAddress,
|
|
55
|
+
lendProvider,
|
|
56
|
+
} = params
|
|
57
|
+
super(chainManager, lendProvider)
|
|
58
|
+
this.client = client
|
|
59
|
+
this.organizationId = organizationId
|
|
60
|
+
this.signWith = signWith
|
|
61
|
+
this.ethereumAddress = ethereumAddress
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static async create(params: {
|
|
65
|
+
chainManager: ChainManager
|
|
66
|
+
client: TurnkeyClient | TurnkeyServerClient | TurnkeySDKClientBase
|
|
67
|
+
organizationId: string
|
|
68
|
+
signWith: string
|
|
69
|
+
ethereumAddress?: string
|
|
70
|
+
lendProvider?: LendProvider<LendConfig>
|
|
71
|
+
}): Promise<TurnkeyWallet> {
|
|
72
|
+
const wallet = new TurnkeyWallet(params)
|
|
73
|
+
await wallet.initialize()
|
|
74
|
+
return wallet
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
protected async performInitialization() {
|
|
78
|
+
this.signer = await this.createSigner()
|
|
79
|
+
this.address = this.signer.address
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private async createSigner(): Promise<LocalAccount> {
|
|
83
|
+
return createSigner({
|
|
84
|
+
client: this.client,
|
|
85
|
+
organizationId: this.organizationId,
|
|
86
|
+
signWith: this.signWith,
|
|
87
|
+
ethereumAddress: this.ethereumAddress,
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
}
|