@eth-optimism/actions-sdk 0.0.0-main-20251009211102
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,418 @@
|
|
|
1
|
+
import type { AccrualPosition } from '@morpho-org/blue-sdk'
|
|
2
|
+
import { fetchAccrualVault } from '@morpho-org/blue-sdk-viem'
|
|
3
|
+
import type { Address } from 'viem'
|
|
4
|
+
import { parseEther } from 'viem'
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
fetchRewards,
|
|
8
|
+
type RewardsBreakdown,
|
|
9
|
+
} from '@/lend/providers/morpho/api.js'
|
|
10
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
11
|
+
import { SUPPORTED_TOKENS } from '@/supported/tokens.js'
|
|
12
|
+
import type {
|
|
13
|
+
ApyBreakdown,
|
|
14
|
+
LendConfig,
|
|
15
|
+
LendMarket,
|
|
16
|
+
LendMarketConfig,
|
|
17
|
+
LendMarketId,
|
|
18
|
+
} from '@/types/lend/index.js'
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Fetch and calculate rewards breakdown from Morpho GraphQL API
|
|
22
|
+
* @param vaultAddress - Vault address
|
|
23
|
+
* @returns Promise resolving to rewards breakdown
|
|
24
|
+
*/
|
|
25
|
+
export async function fetchAndCalculateRewards(
|
|
26
|
+
vaultAddress: Address,
|
|
27
|
+
): Promise<RewardsBreakdown> {
|
|
28
|
+
const vaultData = await fetchRewards(vaultAddress)
|
|
29
|
+
|
|
30
|
+
if (!vaultData) {
|
|
31
|
+
// Initialize empty rewards object with all supported tokens + other
|
|
32
|
+
const emptyRewards: Record<string, number> = {
|
|
33
|
+
other: 0,
|
|
34
|
+
totalRewards: 0,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Add all supported tokens (lowercase) to the rewards object
|
|
38
|
+
SUPPORTED_TOKENS.forEach((token) => {
|
|
39
|
+
emptyRewards[token.metadata.symbol.toLowerCase()] = 0
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
return emptyRewards as unknown as RewardsBreakdown
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return calculateRewardsBreakdown(vaultData)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Calculate base vault APY from SDK data
|
|
50
|
+
* @param vault - Vault data from Morpho SDK
|
|
51
|
+
* @returns Base APY (before rewards, after fees)
|
|
52
|
+
*/
|
|
53
|
+
export function calculateBaseApy(vault: any): number {
|
|
54
|
+
try {
|
|
55
|
+
if (vault.totalAssets === 0n) {
|
|
56
|
+
return 0
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Convert allocations Map to array and calculate weighted APY
|
|
60
|
+
const allocationsArray = Array.from(vault.allocations.values())
|
|
61
|
+
|
|
62
|
+
const totalWeightedApy = allocationsArray.reduce(
|
|
63
|
+
(total: bigint, allocation: any) => {
|
|
64
|
+
const position: AccrualPosition = allocation.position
|
|
65
|
+
const market = position.market
|
|
66
|
+
|
|
67
|
+
if (market && position.supplyShares > 0n) {
|
|
68
|
+
// Get current supply assets and market APY
|
|
69
|
+
const supplyAssets = position.supplyAssets
|
|
70
|
+
const marketSupplyApy = market.supplyApy || 0n
|
|
71
|
+
|
|
72
|
+
// Calculate weighted APY for this allocation
|
|
73
|
+
return total + marketSupplyApy * supplyAssets
|
|
74
|
+
}
|
|
75
|
+
return total
|
|
76
|
+
},
|
|
77
|
+
0n,
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
// Calculate base APY (before fees)
|
|
81
|
+
const baseApyBigInt = totalWeightedApy / vault.totalAssets
|
|
82
|
+
const baseApy = Number(baseApyBigInt) / 1e18
|
|
83
|
+
|
|
84
|
+
// Apply vault fee (fee is in WAD format, 1e18 = 100%)
|
|
85
|
+
const vaultFeeRate = Number(vault.fee) / 1e18
|
|
86
|
+
return baseApy * (1 - vaultFeeRate)
|
|
87
|
+
} catch (calculationError) {
|
|
88
|
+
// eslint-disable-next-line no-console
|
|
89
|
+
console.error('Failed to calculate vault APY manually:', calculationError)
|
|
90
|
+
return 0
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* TEMPORARY - To be removed in https://github.com/ethereum-optimism/actions/issues/112
|
|
96
|
+
* Create mock vault data for Base Sepolia (testnet)
|
|
97
|
+
* @param marketId - Market identifier
|
|
98
|
+
* @param marketConfig - Market configuration from allowlist
|
|
99
|
+
* @returns Mock vault data with realistic values
|
|
100
|
+
*/
|
|
101
|
+
function createMockVaultData(
|
|
102
|
+
marketId: LendMarketId,
|
|
103
|
+
marketConfig: LendMarketConfig,
|
|
104
|
+
): LendMarket {
|
|
105
|
+
const mockApyBreakdown: ApyBreakdown = {
|
|
106
|
+
total: 0.0542, // 5.42% net APY
|
|
107
|
+
native: 0.058, // 5.8% gross APY
|
|
108
|
+
totalRewards: 0.0235, // Total rewards APR
|
|
109
|
+
usdc: 0.0125, // USDC rewards
|
|
110
|
+
morpho: 0.008, // MORPHO token rewards
|
|
111
|
+
other: 0.003, // Other protocol rewards
|
|
112
|
+
performanceFee: 0.065, // 6.5% performance fee
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
marketId,
|
|
117
|
+
name: marketConfig.name,
|
|
118
|
+
asset: marketConfig.asset,
|
|
119
|
+
supply: {
|
|
120
|
+
totalAssets: parseEther('125000'), // ~$125K TVL
|
|
121
|
+
totalShares: parseEther('120000'), // Slightly lower shares (some yield accrued)
|
|
122
|
+
},
|
|
123
|
+
apy: mockApyBreakdown,
|
|
124
|
+
metadata: {
|
|
125
|
+
owner: '0x742d35Cc6464C42C0b15De2C4c98F7E8c3e0F1d9' as Address, // Mock owner
|
|
126
|
+
curator: '0x8f3Cf7ad23Cd3CaDbD9735aff958023239c6A063' as Address, // Mock curator
|
|
127
|
+
fee: mockApyBreakdown.performanceFee,
|
|
128
|
+
lastUpdate: Math.floor(Date.now() / 1000) - 300, // 5 minutes ago
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Parameters for getvault function
|
|
135
|
+
*/
|
|
136
|
+
interface GetVaultParams {
|
|
137
|
+
/** Market identifier (address and chainId) */
|
|
138
|
+
marketId: LendMarketId
|
|
139
|
+
/** Chain manager instance */
|
|
140
|
+
chainManager: ChainManager
|
|
141
|
+
/** Lend configuration containing market allowlist */
|
|
142
|
+
lendConfig?: LendConfig
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Find market configuration in allowlist
|
|
147
|
+
* @param marketAllowlist - Array of allowed market configurations
|
|
148
|
+
* @param marketId - Market identifier to find
|
|
149
|
+
* @returns Market configuration if found, undefined otherwise
|
|
150
|
+
*/
|
|
151
|
+
function findMarketInAllowlist(
|
|
152
|
+
marketAllowlist: LendMarketConfig[],
|
|
153
|
+
marketId: LendMarketId,
|
|
154
|
+
): LendMarketConfig | undefined {
|
|
155
|
+
return marketAllowlist.find(
|
|
156
|
+
(config) =>
|
|
157
|
+
config.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
158
|
+
config.chainId === marketId.chainId,
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Get detailed vault information with enhanced rewards data
|
|
164
|
+
* @param params - Named parameters object
|
|
165
|
+
* @returns Promise resolving to detailed vault information
|
|
166
|
+
*/
|
|
167
|
+
export async function getVault(params: GetVaultParams): Promise<LendMarket> {
|
|
168
|
+
// Find market configuration in allowlist for metadata
|
|
169
|
+
const marketConfig = params.lendConfig?.marketAllowlist
|
|
170
|
+
? findMarketInAllowlist(params.lendConfig.marketAllowlist, params.marketId)
|
|
171
|
+
: undefined
|
|
172
|
+
|
|
173
|
+
if (!marketConfig) {
|
|
174
|
+
throw new Error(
|
|
175
|
+
`Market ${params.marketId.address} on chain ${params.marketId.chainId} not found in allowlist`,
|
|
176
|
+
)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Morpho sdk doesn't support base sepolia, so we need to use the mock vault
|
|
180
|
+
if (params.marketId.chainId === 84532) {
|
|
181
|
+
console.log('Using mock vault for base sepolia')
|
|
182
|
+
return createMockVaultData(params.marketId, marketConfig)
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
try {
|
|
186
|
+
// Fetch live vault data from Morpho SDK
|
|
187
|
+
const vault = await fetchAccrualVault(
|
|
188
|
+
params.marketId.address,
|
|
189
|
+
params.chainManager.getPublicClient(params.marketId.chainId),
|
|
190
|
+
).catch((error) => {
|
|
191
|
+
console.error('Failed to fetch vault info:', error)
|
|
192
|
+
return {
|
|
193
|
+
totalAssets: 0n,
|
|
194
|
+
totalSupply: 0n,
|
|
195
|
+
owner: '0x' as Address,
|
|
196
|
+
curator: '0x' as Address,
|
|
197
|
+
}
|
|
198
|
+
})
|
|
199
|
+
|
|
200
|
+
// Fetch rewards data from API
|
|
201
|
+
const rewardsBreakdown = await fetchAndCalculateRewards(
|
|
202
|
+
params.marketId.address,
|
|
203
|
+
).catch((error) => {
|
|
204
|
+
console.error('Failed to fetch rewards data:', error)
|
|
205
|
+
return {
|
|
206
|
+
usdc: 0,
|
|
207
|
+
morpho: 0,
|
|
208
|
+
other: 0,
|
|
209
|
+
totalRewards: 0,
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
// Calculate APY breakdown
|
|
214
|
+
const apyBreakdown = calculateApyBreakdown(vault, rewardsBreakdown)
|
|
215
|
+
|
|
216
|
+
// Return comprehensive vault information
|
|
217
|
+
const currentTimestampSeconds = Math.floor(Date.now() / 1000)
|
|
218
|
+
|
|
219
|
+
return {
|
|
220
|
+
marketId: params.marketId,
|
|
221
|
+
name: marketConfig.name,
|
|
222
|
+
asset: marketConfig.asset,
|
|
223
|
+
supply: {
|
|
224
|
+
totalAssets: vault.totalAssets,
|
|
225
|
+
totalShares: vault.totalSupply,
|
|
226
|
+
},
|
|
227
|
+
apy: apyBreakdown,
|
|
228
|
+
metadata: {
|
|
229
|
+
owner: vault.owner,
|
|
230
|
+
curator: vault.curator,
|
|
231
|
+
fee: apyBreakdown.performanceFee,
|
|
232
|
+
lastUpdate: currentTimestampSeconds,
|
|
233
|
+
},
|
|
234
|
+
}
|
|
235
|
+
} catch (error) {
|
|
236
|
+
console.error('Failed to get vault info:', error)
|
|
237
|
+
throw new Error(
|
|
238
|
+
`Failed to get vault info for ${params.marketId.address}: ${
|
|
239
|
+
error instanceof Error ? error.message : 'Unknown error'
|
|
240
|
+
}`,
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
interface GetVaultsParams {
|
|
246
|
+
chainManager: ChainManager
|
|
247
|
+
lendConfig: LendConfig
|
|
248
|
+
markets: LendMarketConfig[]
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export async function getVaults(
|
|
252
|
+
params: GetVaultsParams,
|
|
253
|
+
): Promise<LendMarket[]> {
|
|
254
|
+
try {
|
|
255
|
+
const vaultPromises = params.markets.map((marketConfig) => {
|
|
256
|
+
return getVault({
|
|
257
|
+
marketId: {
|
|
258
|
+
address: marketConfig.address,
|
|
259
|
+
chainId: marketConfig.chainId,
|
|
260
|
+
},
|
|
261
|
+
chainManager: params.chainManager,
|
|
262
|
+
lendConfig: params.lendConfig,
|
|
263
|
+
})
|
|
264
|
+
})
|
|
265
|
+
|
|
266
|
+
return await Promise.all(vaultPromises)
|
|
267
|
+
} catch (error) {
|
|
268
|
+
throw new Error(
|
|
269
|
+
`Failed to get vaults: ${
|
|
270
|
+
error instanceof Error ? error.message : 'Unknown error'
|
|
271
|
+
}`,
|
|
272
|
+
)
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Find the best vault for a given asset
|
|
278
|
+
* @param asset - Asset token address
|
|
279
|
+
* @param marketAllowlist - Required list of allowed markets from backend
|
|
280
|
+
* @returns Promise resolving to vault address
|
|
281
|
+
*/
|
|
282
|
+
export async function findBestVaultForAsset(
|
|
283
|
+
asset: Address,
|
|
284
|
+
marketAllowlist: LendMarketConfig[],
|
|
285
|
+
): Promise<Address> {
|
|
286
|
+
if (!marketAllowlist || marketAllowlist.length === 0) {
|
|
287
|
+
throw new Error('Market allowlist is required and cannot be empty')
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
const assetVaults = marketAllowlist.filter((vault) => {
|
|
291
|
+
// LendMarketConfig format
|
|
292
|
+
return Object.values(vault.asset.address).includes(asset)
|
|
293
|
+
})
|
|
294
|
+
|
|
295
|
+
if (assetVaults.length === 0) {
|
|
296
|
+
throw new Error(`No vaults available for asset ${asset}`)
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// For now, return the first (and only) supported vault for the asset
|
|
300
|
+
return assetVaults[0].address
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Calculate APY breakdown from vault data and rewards
|
|
305
|
+
* @param vault - Vault data from Morpho SDK
|
|
306
|
+
* @param rewardsBreakdown - Rewards breakdown from API
|
|
307
|
+
* @returns Complete APY breakdown
|
|
308
|
+
*/
|
|
309
|
+
export function calculateApyBreakdown(
|
|
310
|
+
vault: any,
|
|
311
|
+
rewardsBreakdown: RewardsBreakdown,
|
|
312
|
+
): ApyBreakdown {
|
|
313
|
+
// 1. Calculate base APY from SDK data (before fees)
|
|
314
|
+
const baseApyAfterFees = calculateBaseApy(vault)
|
|
315
|
+
const performanceFee = Number(vault.fee) / 1e18
|
|
316
|
+
const baseApyBeforeFees = baseApyAfterFees / (1 - performanceFee) // Reverse the fee application to get before-fees APY
|
|
317
|
+
|
|
318
|
+
// 2. Calculate net APY following simplified methodology
|
|
319
|
+
// Net APY = Native APY + Rewards APRs - (Performance Fee × Native APY)
|
|
320
|
+
const performanceFeeImpact = baseApyBeforeFees * performanceFee
|
|
321
|
+
const netApy =
|
|
322
|
+
baseApyBeforeFees + rewardsBreakdown.totalRewards - performanceFeeImpact
|
|
323
|
+
|
|
324
|
+
// Extract individual reward token properties (excluding totalRewards aggregate)
|
|
325
|
+
const { totalRewards: _, ...rewardTokens } = rewardsBreakdown
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
total: netApy,
|
|
329
|
+
native: baseApyBeforeFees, // Native APY from market lending (before fees)
|
|
330
|
+
totalRewards: rewardsBreakdown.totalRewards,
|
|
331
|
+
performanceFee: performanceFee,
|
|
332
|
+
...rewardTokens, // Individual token rewards (usdc, morpho, other)
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Calculate detailed rewards breakdown from vault and market allocations
|
|
338
|
+
* @param apiVault - Vault data from GraphQL API
|
|
339
|
+
* @returns Detailed rewards breakdown
|
|
340
|
+
*/
|
|
341
|
+
export function calculateRewardsBreakdown(apiVault: any): RewardsBreakdown {
|
|
342
|
+
// Initialize rewards object with all supported tokens + other
|
|
343
|
+
const rewardsByCategory: Record<string, number> = {
|
|
344
|
+
other: 0,
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Add all supported tokens (lowercase) to the rewards object
|
|
348
|
+
SUPPORTED_TOKENS.forEach((token) => {
|
|
349
|
+
rewardsByCategory[token.metadata.symbol.toLowerCase()] = 0
|
|
350
|
+
})
|
|
351
|
+
|
|
352
|
+
// Calculate vault-level rewards
|
|
353
|
+
if (apiVault.state?.rewards && apiVault.state.rewards.length > 0) {
|
|
354
|
+
apiVault.state.rewards.forEach((reward: any) => {
|
|
355
|
+
const rewardApr = reward.supplyApr || 0
|
|
356
|
+
const assetSymbol = reward.asset.symbol
|
|
357
|
+
|
|
358
|
+
// Use the symbol from API response for categorization
|
|
359
|
+
const category = assetSymbol ? assetSymbol.toLowerCase() : 'other'
|
|
360
|
+
|
|
361
|
+
// Add to appropriate category if supported, otherwise to 'other'
|
|
362
|
+
if (category in rewardsByCategory) {
|
|
363
|
+
rewardsByCategory[category] += rewardApr
|
|
364
|
+
} else {
|
|
365
|
+
rewardsByCategory.other += rewardApr
|
|
366
|
+
}
|
|
367
|
+
})
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// Calculate market-level rewards (weighted by allocation)
|
|
371
|
+
if (apiVault.state?.allocation && apiVault.state.allocation.length > 0) {
|
|
372
|
+
const totalSupplyUsd = apiVault.state.allocation.reduce(
|
|
373
|
+
(total: number, alloc: any) => {
|
|
374
|
+
return total + (alloc.supplyAssetsUsd || 0)
|
|
375
|
+
},
|
|
376
|
+
0,
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
apiVault.state.allocation.forEach((allocation: any) => {
|
|
380
|
+
if (
|
|
381
|
+
allocation.market?.state?.rewards &&
|
|
382
|
+
allocation.market.state.rewards.length > 0
|
|
383
|
+
) {
|
|
384
|
+
const weight =
|
|
385
|
+
totalSupplyUsd > 0
|
|
386
|
+
? (allocation.supplyAssetsUsd || 0) / totalSupplyUsd
|
|
387
|
+
: 0
|
|
388
|
+
|
|
389
|
+
allocation.market.state.rewards.forEach((reward: any) => {
|
|
390
|
+
const rewardApr = reward.supplyApr || 0
|
|
391
|
+
const weightedRewardApr = rewardApr * weight
|
|
392
|
+
const assetSymbol = reward.asset.symbol
|
|
393
|
+
|
|
394
|
+
// Use the symbol from API response for categorization
|
|
395
|
+
const category = assetSymbol ? assetSymbol.toLowerCase() : 'other'
|
|
396
|
+
|
|
397
|
+
// Add to appropriate category if supported, otherwise to 'other'
|
|
398
|
+
if (category in rewardsByCategory) {
|
|
399
|
+
rewardsByCategory[category] += weightedRewardApr
|
|
400
|
+
} else {
|
|
401
|
+
rewardsByCategory.other += weightedRewardApr
|
|
402
|
+
}
|
|
403
|
+
})
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// Calculate total rewards APR
|
|
409
|
+
const totalRewards = Object.values(rewardsByCategory).reduce(
|
|
410
|
+
(total, apr) => total + apr,
|
|
411
|
+
0,
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
return {
|
|
415
|
+
...rewardsByCategory,
|
|
416
|
+
totalRewards,
|
|
417
|
+
} as RewardsBreakdown
|
|
418
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Actions } from '@/actions.js'
|
|
2
|
+
import type { ActionsConfig } from '@/types/actions.js'
|
|
3
|
+
import { NodeHostedWalletProviderRegistry } from '@/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js'
|
|
4
|
+
import type {
|
|
5
|
+
NodeHostedWalletProvidersSchema,
|
|
6
|
+
NodeOptionsMap,
|
|
7
|
+
NodeProviderTypes,
|
|
8
|
+
} from '@/wallet/node/providers/hosted/types/index.js'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Node Actions configuration
|
|
12
|
+
* @description Configuration object for initializing the Actions SDK in Node
|
|
13
|
+
*/
|
|
14
|
+
export type NodeActionsConfig<
|
|
15
|
+
HostedWalletProviderType extends NodeProviderTypes,
|
|
16
|
+
> = ActionsConfig<HostedWalletProviderType, NodeOptionsMap>
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Creates a Node environment Actions factory
|
|
20
|
+
*
|
|
21
|
+
* Creates an Actions instance wired with the Node-specific HostedWalletProviderRegistry.
|
|
22
|
+
* This ensures browser-only providers are never imported in Node,
|
|
23
|
+
* avoiding runtime/module-resolution issues on the backend.
|
|
24
|
+
* @param config Actions configuration
|
|
25
|
+
* @returns Actions instance using the NodeHostedWalletProviderRegistry
|
|
26
|
+
*/
|
|
27
|
+
export function createActions<
|
|
28
|
+
HostedWalletProviderType extends NodeProviderTypes,
|
|
29
|
+
>(config: NodeActionsConfig<HostedWalletProviderType>) {
|
|
30
|
+
return new Actions<
|
|
31
|
+
NodeHostedWalletProvidersSchema['providerTypes'],
|
|
32
|
+
NodeHostedWalletProvidersSchema,
|
|
33
|
+
HostedWalletProviderType
|
|
34
|
+
>(config, {
|
|
35
|
+
hostedWalletProviderRegistry: new NodeHostedWalletProviderRegistry(),
|
|
36
|
+
})
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Actions } from '@/actions.js'
|
|
2
|
+
import type { ActionsConfig } from '@/types/actions.js'
|
|
3
|
+
import type {
|
|
4
|
+
ReactHostedWalletProvidersSchema,
|
|
5
|
+
ReactOptionsMap,
|
|
6
|
+
ReactProviderTypes,
|
|
7
|
+
} from '@/wallet/react/providers/hosted/types/index.js'
|
|
8
|
+
import { ReactHostedWalletProviderRegistry } from '@/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* React Actions configuration
|
|
12
|
+
* @description Configuration object for initializing the Actions SDK in React
|
|
13
|
+
*/
|
|
14
|
+
export type ReactActionsConfig<
|
|
15
|
+
HostedWalletProviderType extends ReactProviderTypes,
|
|
16
|
+
> = ActionsConfig<HostedWalletProviderType, ReactOptionsMap>
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Creates a React/browser environment Actions factory
|
|
20
|
+
*
|
|
21
|
+
* Creates an Actions instance wired with the React-specific HostedWalletProviderRegistry.
|
|
22
|
+
* This registry enables browser-only hosted providers and defers
|
|
23
|
+
* their imports to the client environment to keep server builds clean.
|
|
24
|
+
* @param config Actions configuration
|
|
25
|
+
* @returns Actions instance using the ReactHostedWalletProviderRegistry
|
|
26
|
+
*/
|
|
27
|
+
export function createActions<
|
|
28
|
+
HostedWalletProviderType extends ReactProviderTypes,
|
|
29
|
+
>(config: ReactActionsConfig<HostedWalletProviderType>) {
|
|
30
|
+
return new Actions<
|
|
31
|
+
ReactHostedWalletProvidersSchema['providerTypes'],
|
|
32
|
+
ReactHostedWalletProvidersSchema,
|
|
33
|
+
HostedWalletProviderType
|
|
34
|
+
>(config, {
|
|
35
|
+
hostedWalletProviderRegistry: new ReactHostedWalletProviderRegistry(),
|
|
36
|
+
})
|
|
37
|
+
}
|