@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,311 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
import { parseUnits } from 'viem'
|
|
3
|
+
|
|
4
|
+
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import type { Asset } from '@/types/asset.js'
|
|
6
|
+
import type {
|
|
7
|
+
BaseLendConfig,
|
|
8
|
+
ClosePositionParams,
|
|
9
|
+
GetLendMarketParams,
|
|
10
|
+
GetLendMarketsParams,
|
|
11
|
+
GetMarketBalanceParams,
|
|
12
|
+
LendClosePositionParams,
|
|
13
|
+
LendMarket,
|
|
14
|
+
LendMarketConfig,
|
|
15
|
+
LendMarketId,
|
|
16
|
+
LendMarketPosition,
|
|
17
|
+
LendOpenPositionInternalParams,
|
|
18
|
+
LendOpenPositionParams,
|
|
19
|
+
LendTransaction,
|
|
20
|
+
} from '@/types/lend/index.js'
|
|
21
|
+
import { validateMarketAsset } from '@/utils/markets.js'
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Lending provider abstract class
|
|
25
|
+
* @description Base class for lending provider implementations
|
|
26
|
+
*/
|
|
27
|
+
export abstract class LendProvider<
|
|
28
|
+
TConfig extends BaseLendConfig = BaseLendConfig,
|
|
29
|
+
> {
|
|
30
|
+
/** Lending provider configuration */
|
|
31
|
+
protected readonly _config: TConfig
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Supported chain IDs
|
|
35
|
+
* @description Array of chain IDs that this provider supports
|
|
36
|
+
*/
|
|
37
|
+
protected abstract readonly SUPPORTED_CHAIN_IDS: readonly number[]
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Create a new lending provider
|
|
41
|
+
* @param config - Provider-specific lending configuration
|
|
42
|
+
*/
|
|
43
|
+
protected constructor(config: TConfig) {
|
|
44
|
+
this._config = config
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public get config(): TConfig {
|
|
48
|
+
return this._config
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Get supported chain IDs
|
|
53
|
+
* @description Returns an array of chain IDs that this provider supports
|
|
54
|
+
* @returns Array of supported chain IDs
|
|
55
|
+
*/
|
|
56
|
+
supportedChainIds(): number[] {
|
|
57
|
+
return [...this.SUPPORTED_CHAIN_IDS]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Open a lending position
|
|
62
|
+
* @param amount - Amount to lend (human-readable number)
|
|
63
|
+
* @param asset - Asset to lend
|
|
64
|
+
* @param marketId - Market identifier containing address and chainId
|
|
65
|
+
* @param options - Optional lending configuration
|
|
66
|
+
* @returns Promise resolving to lending transaction details
|
|
67
|
+
*/
|
|
68
|
+
async openPosition(params: LendOpenPositionParams): Promise<LendTransaction> {
|
|
69
|
+
if (!params.walletAddress) {
|
|
70
|
+
throw new Error('walletAddress is required')
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.validateProviderSupported(params.marketId.chainId)
|
|
74
|
+
this.validateConfigSupported(params.marketId)
|
|
75
|
+
|
|
76
|
+
// Convert human-readable amount to wei using the asset's decimals
|
|
77
|
+
const amountWei = parseUnits(
|
|
78
|
+
params.amount.toString(),
|
|
79
|
+
params.asset.metadata.decimals,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
return this._openPosition({
|
|
83
|
+
...params,
|
|
84
|
+
amountWei,
|
|
85
|
+
walletAddress: params.walletAddress,
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Get detailed market information
|
|
91
|
+
* @param address - Market contract address
|
|
92
|
+
* @param chainId - Chain ID where the market exists
|
|
93
|
+
* @returns Promise resolving to market information
|
|
94
|
+
*/
|
|
95
|
+
async getMarket(params: GetLendMarketParams): Promise<LendMarket> {
|
|
96
|
+
const marketId: LendMarketId = {
|
|
97
|
+
address: params.address,
|
|
98
|
+
chainId: params.chainId,
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
this.validateProviderSupported(params.chainId)
|
|
102
|
+
this.validateConfigSupported(marketId)
|
|
103
|
+
return this._getMarket(marketId)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Get list of available lending markets
|
|
108
|
+
* @param params - Optional filtering parameters
|
|
109
|
+
* @returns Promise resolving to array of market information
|
|
110
|
+
*/
|
|
111
|
+
async getMarkets(params: GetLendMarketsParams = {}): Promise<LendMarket[]> {
|
|
112
|
+
if (params.chainId !== undefined)
|
|
113
|
+
this.validateProviderSupported(params.chainId)
|
|
114
|
+
|
|
115
|
+
const filteredMarkets = this.filterMarketConfigs(
|
|
116
|
+
params.chainId,
|
|
117
|
+
params.asset,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
return this._getMarkets({
|
|
121
|
+
asset: params.asset,
|
|
122
|
+
chainId: params.chainId,
|
|
123
|
+
markets: params.markets || filteredMarkets,
|
|
124
|
+
})
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Get position information for a wallet
|
|
129
|
+
* @param walletAddress - User wallet address to check position for
|
|
130
|
+
* @param marketId - Market identifier (required)
|
|
131
|
+
* @param asset - Asset filter (not yet supported)
|
|
132
|
+
* @returns Promise resolving to position information
|
|
133
|
+
*/
|
|
134
|
+
async getPosition(
|
|
135
|
+
walletAddress: Address,
|
|
136
|
+
marketId?: LendMarketId,
|
|
137
|
+
asset?: Asset,
|
|
138
|
+
): Promise<LendMarketPosition> {
|
|
139
|
+
// For now, require marketId (asset-only and empty params not yet supported)
|
|
140
|
+
if (!marketId) {
|
|
141
|
+
throw new Error(
|
|
142
|
+
'marketId is required. Querying all positions or by asset is not yet supported.',
|
|
143
|
+
)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (asset) {
|
|
147
|
+
throw new Error(
|
|
148
|
+
'Filtering by asset is not yet supported. Please provide only marketId.',
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
this.validateProviderSupported(marketId.chainId)
|
|
153
|
+
this.validateConfigSupported(marketId)
|
|
154
|
+
|
|
155
|
+
return this._getPosition({ marketId, walletAddress })
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Close a lending position (withdraw assets from a market)
|
|
160
|
+
* @param amount - Amount to withdraw (human-readable number)
|
|
161
|
+
* @param asset - Asset to withdraw (optional, validated against marketId)
|
|
162
|
+
* @param marketId - Market identifier containing address and chainId
|
|
163
|
+
* @param walletAddress - Wallet address for receiving assets and as owner
|
|
164
|
+
* @param options - Optional withdrawal configuration
|
|
165
|
+
* @returns Promise resolving to withdrawal transaction details
|
|
166
|
+
*/
|
|
167
|
+
async closePosition(params: ClosePositionParams): Promise<LendTransaction> {
|
|
168
|
+
if (!params.walletAddress) {
|
|
169
|
+
throw new Error('walletAddress is required')
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
this.validateProviderSupported(params.marketId.chainId)
|
|
173
|
+
this.validateConfigSupported(params.marketId)
|
|
174
|
+
|
|
175
|
+
const market = await this.getMarket({
|
|
176
|
+
address: params.marketId.address,
|
|
177
|
+
chainId: params.marketId.chainId,
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
if (params.asset) {
|
|
181
|
+
validateMarketAsset(market, params.asset)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const assetMetadata = params.asset?.metadata
|
|
185
|
+
if (!assetMetadata) {
|
|
186
|
+
throw new Error('Asset metadata is required for decimal conversion')
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Convert human-readable amount to wei using the asset's decimals
|
|
190
|
+
const amountWei = parseUnits(
|
|
191
|
+
params.amount.toString(),
|
|
192
|
+
assetMetadata.decimals,
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
return this._closePosition({
|
|
196
|
+
asset: params.asset,
|
|
197
|
+
amount: amountWei,
|
|
198
|
+
marketId: params.marketId,
|
|
199
|
+
walletAddress: params.walletAddress,
|
|
200
|
+
options: params.options,
|
|
201
|
+
})
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Check if a chain is supported by this lending provider
|
|
206
|
+
* @param chainId - Chain ID to check
|
|
207
|
+
* @returns true if chain is supported, false otherwise
|
|
208
|
+
*/
|
|
209
|
+
protected isChainSupported(chainId: number): boolean {
|
|
210
|
+
return this.SUPPORTED_CHAIN_IDS.includes(chainId)
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Validate that a chainId is supported for lending operations
|
|
215
|
+
* @param chainId - Chain ID to validate
|
|
216
|
+
* @throws Error if chain is not supported
|
|
217
|
+
*/
|
|
218
|
+
protected validateProviderSupported(chainId: number): void {
|
|
219
|
+
if (!this.isChainSupported(chainId)) {
|
|
220
|
+
throw new Error(
|
|
221
|
+
`Chain ${chainId} is not supported. Supported chains: ${this.SUPPORTED_CHAIN_IDS.join(', ')}`,
|
|
222
|
+
)
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Validate that a market is in the config's market allowlist
|
|
228
|
+
* @param marketId - Market identifier containing address and chainId
|
|
229
|
+
* @throws Error if market allowlist is configured but market is not in it
|
|
230
|
+
*/
|
|
231
|
+
protected validateConfigSupported(marketId: LendMarketId): void {
|
|
232
|
+
if (
|
|
233
|
+
!this._config.marketAllowlist ||
|
|
234
|
+
this._config.marketAllowlist.length === 0
|
|
235
|
+
) {
|
|
236
|
+
return
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const foundMarket = this._config.marketAllowlist.find(
|
|
240
|
+
(allowedMarket) =>
|
|
241
|
+
allowedMarket.address.toLowerCase() ===
|
|
242
|
+
marketId.address.toLowerCase() &&
|
|
243
|
+
allowedMarket.chainId === marketId.chainId,
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
if (!foundMarket) {
|
|
247
|
+
throw new Error(
|
|
248
|
+
`Market ${marketId.address} on chain ${marketId.chainId} is not in the market allowlist`,
|
|
249
|
+
)
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Helper method to filter market configurations
|
|
255
|
+
* @param chainId - Chain ID to filter by
|
|
256
|
+
* @param asset - Asset to filter by
|
|
257
|
+
* @returns Filtered market configurations
|
|
258
|
+
*/
|
|
259
|
+
private filterMarketConfigs(
|
|
260
|
+
chainId?: SupportedChainId,
|
|
261
|
+
asset?: Asset,
|
|
262
|
+
): LendMarketConfig[] {
|
|
263
|
+
let configs = this._config.marketAllowlist || []
|
|
264
|
+
if (chainId !== undefined)
|
|
265
|
+
configs = configs.filter((m) => m.chainId === chainId)
|
|
266
|
+
if (asset !== undefined) configs = configs.filter((m) => m.asset === asset)
|
|
267
|
+
return configs
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Abstract methods that must be implemented by providers
|
|
272
|
+
*/
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Provider implementation of openPosition method
|
|
276
|
+
* @description Must be implemented by providers
|
|
277
|
+
*/
|
|
278
|
+
protected abstract _openPosition(
|
|
279
|
+
params: LendOpenPositionInternalParams,
|
|
280
|
+
): Promise<LendTransaction>
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Provider implementation of getMarket method
|
|
284
|
+
* @description Must be implemented by providers
|
|
285
|
+
*/
|
|
286
|
+
protected abstract _getMarket(marketId: LendMarketId): Promise<LendMarket>
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Provider implementation of getMarkets method
|
|
290
|
+
* @description Must be implemented by providers
|
|
291
|
+
*/
|
|
292
|
+
protected abstract _getMarkets(
|
|
293
|
+
params: GetLendMarketsParams,
|
|
294
|
+
): Promise<LendMarket[]>
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Provider implementation of getPosition method
|
|
298
|
+
* @description Must be implemented by providers
|
|
299
|
+
*/
|
|
300
|
+
protected abstract _getPosition(
|
|
301
|
+
params: GetMarketBalanceParams,
|
|
302
|
+
): Promise<LendMarketPosition>
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Provider implementation of closePosition method
|
|
306
|
+
* @description Must be implemented by providers
|
|
307
|
+
*/
|
|
308
|
+
protected abstract _closePosition(
|
|
309
|
+
params: LendClosePositionParams,
|
|
310
|
+
): Promise<LendTransaction>
|
|
311
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
import { describe, expect, it } from 'vitest'
|
|
3
|
+
|
|
4
|
+
import { MockUSDCAsset } from '@/test/MockAssets.js'
|
|
5
|
+
import { MockLendProvider } from '@/test/MockLendProvider.js'
|
|
6
|
+
import type {
|
|
7
|
+
LendConfig,
|
|
8
|
+
LendMarketConfig,
|
|
9
|
+
LendMarketId,
|
|
10
|
+
} from '@/types/lend/index.js'
|
|
11
|
+
|
|
12
|
+
// Test helper class that exposes protected validation methods as public
|
|
13
|
+
class TestLendProvider extends MockLendProvider {
|
|
14
|
+
public validateProviderSupported(chainId: number): void {
|
|
15
|
+
return super.validateProviderSupported(chainId)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public validateConfigSupported(marketId: LendMarketId): void {
|
|
19
|
+
return super.validateConfigSupported(marketId)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public isChainSupported(chainId: number): boolean {
|
|
23
|
+
return super.isChainSupported(chainId)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
describe('LendProvider', () => {
|
|
28
|
+
describe('constructor and configuration', () => {
|
|
29
|
+
it('should initialize with basic config', () => {
|
|
30
|
+
const config: LendConfig = {
|
|
31
|
+
provider: 'morpho',
|
|
32
|
+
defaultSlippage: 100,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const provider = new MockLendProvider(config)
|
|
36
|
+
expect(provider).toBeDefined()
|
|
37
|
+
expect(provider.supportedChainIds()).toContain(84532)
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('should use default slippage when not provided', () => {
|
|
41
|
+
const config: LendConfig = { provider: 'morpho' }
|
|
42
|
+
const provider = new MockLendProvider(config)
|
|
43
|
+
|
|
44
|
+
expect(provider.config.defaultSlippage || 50).toBe(50)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('should use custom default slippage when provided', () => {
|
|
48
|
+
const config: LendConfig = {
|
|
49
|
+
provider: 'morpho',
|
|
50
|
+
defaultSlippage: 200,
|
|
51
|
+
}
|
|
52
|
+
const provider = new MockLendProvider(config)
|
|
53
|
+
|
|
54
|
+
expect(provider.config.defaultSlippage).toBe(200)
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('should store market allowlist when provided', () => {
|
|
58
|
+
const mockMarket: LendMarketConfig = {
|
|
59
|
+
address: '0x1234' as Address,
|
|
60
|
+
chainId: 84532,
|
|
61
|
+
name: 'Test Market',
|
|
62
|
+
asset: {
|
|
63
|
+
address: { 84532: '0xUSC' as Address },
|
|
64
|
+
metadata: {
|
|
65
|
+
decimals: 6,
|
|
66
|
+
name: 'USD Coin',
|
|
67
|
+
symbol: 'USDC',
|
|
68
|
+
},
|
|
69
|
+
type: 'erc20',
|
|
70
|
+
},
|
|
71
|
+
lendProvider: 'morpho',
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const config: LendConfig = {
|
|
75
|
+
provider: 'morpho',
|
|
76
|
+
marketAllowlist: [mockMarket],
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const provider = new MockLendProvider(config)
|
|
80
|
+
expect(provider.config.marketAllowlist).toEqual([mockMarket])
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
describe('abstract methods implementation', () => {
|
|
85
|
+
it('should implement getMarket method', async () => {
|
|
86
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
87
|
+
const marketId: LendMarketId = {
|
|
88
|
+
address: '0x1234' as Address,
|
|
89
|
+
chainId: 84532,
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const market = await provider.getMarket(marketId)
|
|
93
|
+
expect(market.marketId.chainId).toBe(84532)
|
|
94
|
+
expect(market.name).toBe('Mock Market')
|
|
95
|
+
expect(market.apy.total).toBe(0.05)
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
it('should accept LendMarketConfig and extract address/chainId', async () => {
|
|
99
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
100
|
+
const mockMarket: LendMarketConfig = {
|
|
101
|
+
address: '0x5678' as Address,
|
|
102
|
+
chainId: 84532,
|
|
103
|
+
name: 'Test Config Market',
|
|
104
|
+
asset: MockUSDCAsset,
|
|
105
|
+
lendProvider: 'morpho',
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const market = await provider.getMarket(mockMarket)
|
|
109
|
+
expect(market.marketId.chainId).toBe(84532)
|
|
110
|
+
expect(market.marketId.address).toBe('0x5678')
|
|
111
|
+
expect(market.name).toBe('Mock Market')
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
it('should implement getMarkets method', async () => {
|
|
115
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
116
|
+
const markets = await provider.getMarkets()
|
|
117
|
+
|
|
118
|
+
expect(Array.isArray(markets)).toBe(true)
|
|
119
|
+
expect(markets).toHaveLength(1)
|
|
120
|
+
expect(markets[0].name).toBe('Mock Market')
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
it('should accept optional filter parameters for getMarkets', async () => {
|
|
124
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
125
|
+
const markets = await provider.getMarkets({ chainId: 84532 })
|
|
126
|
+
|
|
127
|
+
expect(Array.isArray(markets)).toBe(true)
|
|
128
|
+
expect(markets).toHaveLength(1)
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
it('should accept asset filtering parameter', async () => {
|
|
132
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
133
|
+
const mockAsset = {
|
|
134
|
+
metadata: { symbol: 'USDC', name: 'USD Coin' },
|
|
135
|
+
address: { 84532: '0x123' as Address },
|
|
136
|
+
} as any
|
|
137
|
+
|
|
138
|
+
const markets = await provider.getMarkets({ asset: mockAsset })
|
|
139
|
+
expect(Array.isArray(markets)).toBe(true)
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
it('should implement getPosition method', async () => {
|
|
143
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
144
|
+
const position = await provider.getPosition('0x5678' as Address, {
|
|
145
|
+
address: '0x1234' as Address,
|
|
146
|
+
chainId: 84532 as const,
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
expect(position.balance).toBe(500000n)
|
|
150
|
+
expect(position.shares).toBe(500000n)
|
|
151
|
+
expect(position.marketId.chainId).toBe(84532)
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
it('should implement closePosition method', async () => {
|
|
155
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
156
|
+
const result = await provider.closePosition({
|
|
157
|
+
amount: 100,
|
|
158
|
+
marketId: { address: '0x1234' as Address, chainId: 84532 as const },
|
|
159
|
+
walletAddress: '0x5678' as Address,
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
expect(result.amount).toBe(100n)
|
|
163
|
+
expect(result.marketId).toBe('0x1234')
|
|
164
|
+
expect(typeof result.transactionData).toBe('object')
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
it('should implement withdraw method', async () => {
|
|
168
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
169
|
+
const result = await provider.withdraw(
|
|
170
|
+
'0x0000000000000000000000000000000000000001' as Address,
|
|
171
|
+
500n,
|
|
172
|
+
84532,
|
|
173
|
+
'market-2',
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
expect(result.amount).toBe(500n)
|
|
177
|
+
expect(result.marketId).toBe('market-2')
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
it('should implement openPosition method', async () => {
|
|
181
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
182
|
+
const mockAsset = {
|
|
183
|
+
address: { 84532: '0x123' as Address },
|
|
184
|
+
metadata: { symbol: 'USDC', name: 'USD Coin', decimals: 6 },
|
|
185
|
+
type: 'erc20' as const,
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const result = await provider.openPosition({
|
|
189
|
+
amount: 1000,
|
|
190
|
+
asset: mockAsset,
|
|
191
|
+
marketId: { address: '0x1234' as Address, chainId: 84532 },
|
|
192
|
+
walletAddress: '0x5678' as Address,
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
expect(result.amount).toBe(1000000000n)
|
|
196
|
+
expect(result.asset).toBe('0x123')
|
|
197
|
+
expect(result.marketId).toBe('0x1234')
|
|
198
|
+
expect(result.apy).toBe(0.05)
|
|
199
|
+
})
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
describe('supportedChainIds', () => {
|
|
203
|
+
it('should return array of supported chain IDs', () => {
|
|
204
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
205
|
+
const chainIds = provider.supportedChainIds()
|
|
206
|
+
|
|
207
|
+
expect(Array.isArray(chainIds)).toBe(true)
|
|
208
|
+
expect(chainIds).toContain(84532)
|
|
209
|
+
expect(chainIds.length).toBeGreaterThan(0)
|
|
210
|
+
})
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
describe('validation', () => {
|
|
214
|
+
it('should call validation for unsupported chainId', () => {
|
|
215
|
+
const provider = new TestLendProvider({ provider: 'morpho' })
|
|
216
|
+
|
|
217
|
+
expect(() => {
|
|
218
|
+
provider.validateProviderSupported(999)
|
|
219
|
+
}).toThrow('Chain 999 is not supported')
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
it('should call validation for market allowlist', () => {
|
|
223
|
+
const allowedMarket: LendMarketConfig = {
|
|
224
|
+
address: '0x1234' as Address,
|
|
225
|
+
chainId: 84532,
|
|
226
|
+
name: 'Allowed Market',
|
|
227
|
+
asset: {
|
|
228
|
+
address: { 84532: '0xUSC' as Address },
|
|
229
|
+
metadata: { decimals: 6, name: 'USD Coin', symbol: 'USDC' },
|
|
230
|
+
type: 'erc20',
|
|
231
|
+
},
|
|
232
|
+
lendProvider: 'morpho',
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const provider = new TestLendProvider({
|
|
236
|
+
provider: 'morpho',
|
|
237
|
+
marketAllowlist: [allowedMarket],
|
|
238
|
+
})
|
|
239
|
+
|
|
240
|
+
expect(() => {
|
|
241
|
+
provider.validateConfigSupported({
|
|
242
|
+
address: '0x1234' as Address,
|
|
243
|
+
chainId: 84532,
|
|
244
|
+
})
|
|
245
|
+
}).not.toThrow()
|
|
246
|
+
|
|
247
|
+
expect(() => {
|
|
248
|
+
provider.validateConfigSupported({
|
|
249
|
+
address: '0x9999' as Address,
|
|
250
|
+
chainId: 84532,
|
|
251
|
+
})
|
|
252
|
+
}).toThrow('not in the market allowlist')
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
it('should validate chain support correctly', () => {
|
|
256
|
+
const provider = new TestLendProvider({ provider: 'morpho' })
|
|
257
|
+
|
|
258
|
+
expect(provider.isChainSupported(84532)).toBe(true)
|
|
259
|
+
expect(provider.isChainSupported(999)).toBe(false)
|
|
260
|
+
})
|
|
261
|
+
})
|
|
262
|
+
|
|
263
|
+
describe('public getters', () => {
|
|
264
|
+
it('should provide access to defaultSlippage via getter', () => {
|
|
265
|
+
const config: LendConfig = {
|
|
266
|
+
provider: 'morpho',
|
|
267
|
+
defaultSlippage: 75,
|
|
268
|
+
}
|
|
269
|
+
const provider = new MockLendProvider(config)
|
|
270
|
+
|
|
271
|
+
expect(provider.config.defaultSlippage).toBe(75)
|
|
272
|
+
})
|
|
273
|
+
|
|
274
|
+
it('should provide access to marketAllowlist via getter', () => {
|
|
275
|
+
const mockMarket: LendMarketConfig = {
|
|
276
|
+
address: '0xabc' as Address,
|
|
277
|
+
chainId: 84532,
|
|
278
|
+
name: 'Market ABC',
|
|
279
|
+
asset: {
|
|
280
|
+
address: { 84532: '0xdef' as Address },
|
|
281
|
+
metadata: {
|
|
282
|
+
decimals: 18,
|
|
283
|
+
name: 'Test Token',
|
|
284
|
+
symbol: 'TEST',
|
|
285
|
+
},
|
|
286
|
+
type: 'erc20',
|
|
287
|
+
},
|
|
288
|
+
lendProvider: 'morpho',
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const config: LendConfig = {
|
|
292
|
+
provider: 'morpho',
|
|
293
|
+
marketAllowlist: [mockMarket],
|
|
294
|
+
}
|
|
295
|
+
const provider = new MockLendProvider(config)
|
|
296
|
+
|
|
297
|
+
expect(provider.config.marketAllowlist).toEqual([mockMarket])
|
|
298
|
+
})
|
|
299
|
+
|
|
300
|
+
it('should return undefined for marketAllowlist when not provided', () => {
|
|
301
|
+
const provider = new MockLendProvider({ provider: 'morpho' })
|
|
302
|
+
expect(provider.config.marketAllowlist).toBeUndefined()
|
|
303
|
+
})
|
|
304
|
+
})
|
|
305
|
+
})
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
2
|
+
import type { BaseLendConfig, LendConfig } from '@/types/lend/index.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Actions Lend Namespace
|
|
6
|
+
* @description Read-only lending operations available on actions.lend
|
|
7
|
+
*/
|
|
8
|
+
export class ActionsLendNamespace<TConfig extends BaseLendConfig = LendConfig> {
|
|
9
|
+
constructor(protected readonly provider: LendProvider<TConfig>) {}
|
|
10
|
+
|
|
11
|
+
get config(): TConfig {
|
|
12
|
+
return this.provider.config
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Bind to the LendProvider's methods and carry types
|
|
16
|
+
|
|
17
|
+
getMarkets = (...args: Parameters<LendProvider<TConfig>['getMarkets']>) =>
|
|
18
|
+
this.provider.getMarkets(...args)
|
|
19
|
+
|
|
20
|
+
getMarket = (...args: Parameters<LendProvider<TConfig>['getMarket']>) =>
|
|
21
|
+
this.provider.getMarket(...args)
|
|
22
|
+
|
|
23
|
+
supportedChainIds = (
|
|
24
|
+
...args: Parameters<LendProvider<TConfig>['supportedChainIds']>
|
|
25
|
+
) => this.provider.supportedChainIds(...args)
|
|
26
|
+
}
|