@eth-optimism/actions-sdk 0.0.4 → 0.2.0
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 +1 -1
- package/dist/__mocks__/MockAssets.d.ts.map +1 -0
- package/dist/__mocks__/MockAssets.js.map +1 -0
- package/dist/__mocks__/MockPrivyClient.d.ts.map +1 -0
- package/dist/__mocks__/MockPrivyClient.js.map +1 -0
- package/dist/__mocks__/utils.d.ts.map +1 -0
- package/dist/__mocks__/utils.js.map +1 -0
- package/dist/__tests__/actions.test.d.ts.map +1 -0
- package/dist/{actions.test.js → __tests__/actions.test.js} +35 -85
- package/dist/__tests__/actions.test.js.map +1 -0
- package/dist/actions.d.ts +19 -7
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +49 -19
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +19 -0
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +84 -6
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/supportedChains.d.ts +1 -1
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +7 -3
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/core/asset/__mocks__/mockAsset.js +1 -1
- package/dist/core/asset/__mocks__/mockAsset.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{test → lend/__mocks__}/MockLendProvider.d.ts +9 -7
- package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -0
- package/dist/{test → lend/__mocks__}/MockLendProvider.js +20 -21
- package/dist/lend/__mocks__/MockLendProvider.js.map +1 -0
- package/dist/{test → lend/__mocks__}/MockMarkets.d.ts +1 -1
- package/dist/lend/__mocks__/MockMarkets.d.ts.map +1 -0
- package/dist/{test → lend/__mocks__}/MockMarkets.js +1 -1
- package/dist/lend/__mocks__/MockMarkets.js.map +1 -0
- package/dist/lend/__mocks__/mockLendTransaction.d.ts +3 -12
- package/dist/lend/__mocks__/mockLendTransaction.d.ts.map +1 -1
- package/dist/lend/__mocks__/mockLendTransaction.js +3 -19
- package/dist/lend/__mocks__/mockLendTransaction.js.map +1 -1
- package/dist/lend/core/LendProvider.d.ts +16 -3
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +23 -2
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/core/__tests__/LendProvider.test.js +20 -50
- package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
- package/dist/lend/index.d.ts +1 -0
- package/dist/lend/index.d.ts.map +1 -1
- package/dist/lend/index.js +1 -0
- package/dist/lend/index.js.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts +2 -9
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.js +2 -11
- package/dist/lend/namespaces/ActionsLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/BaseLendNamespace.d.ts +47 -0
- package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -0
- package/dist/lend/namespaces/BaseLendNamespace.js +58 -0
- package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -0
- package/dist/lend/namespaces/WalletLendNamespace.d.ts +8 -9
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.js +24 -31
- package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +25 -17
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js.map +1 -1
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts +2 -0
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.d.ts.map +1 -0
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +110 -0
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -0
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js +37 -21
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts +74 -0
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -0
- package/dist/lend/providers/aave/AaveLendProvider.js +290 -0
- package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -0
- package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts +11 -0
- package/dist/lend/providers/aave/__mocks__/mockReserve.d.ts.map +1 -0
- package/dist/lend/providers/aave/__mocks__/mockReserve.js +80 -0
- package/dist/lend/providers/aave/__mocks__/mockReserve.js.map +1 -0
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts +2 -0
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.d.ts.map +1 -0
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +315 -0
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -0
- package/dist/lend/providers/aave/abis/pool.d.ts +153 -0
- package/dist/lend/providers/aave/abis/pool.d.ts.map +1 -0
- package/dist/lend/providers/aave/abis/pool.js +79 -0
- package/dist/lend/providers/aave/abis/pool.js.map +1 -0
- package/dist/lend/providers/aave/addresses.d.ts +57 -0
- package/dist/lend/providers/aave/addresses.d.ts.map +1 -0
- package/dist/lend/providers/aave/addresses.js +83 -0
- package/dist/lend/providers/aave/addresses.js.map +1 -0
- package/dist/lend/providers/aave/sdk.d.ts +57 -0
- package/dist/lend/providers/aave/sdk.d.ts.map +1 -0
- package/dist/lend/providers/aave/sdk.js +201 -0
- package/dist/lend/providers/aave/sdk.js.map +1 -0
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +4 -4
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.js +13 -28
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js +6 -57
- package/dist/lend/providers/morpho/__tests__/MorphoLendProvider.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/api.test.js +248 -54
- package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +1 -0
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/contracts.d.ts +19 -0
- package/dist/lend/providers/morpho/contracts.d.ts.map +1 -0
- package/dist/lend/providers/morpho/contracts.js +32 -0
- package/dist/lend/providers/morpho/contracts.js.map +1 -0
- package/dist/lend/providers/morpho/sdk.d.ts +4 -3
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +168 -71
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/services/ChainManager.d.ts +1 -1
- package/dist/{test → services/__mocks__}/MockChainManager.d.ts +1 -1
- package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -0
- package/dist/services/__mocks__/MockChainManager.js.map +1 -0
- package/dist/services/tokenBalance.d.ts.map +1 -1
- package/dist/services/tokenBalance.js +4 -5
- package/dist/services/tokenBalance.js.map +1 -1
- package/dist/services/tokenBalance.spec.js +2 -2
- package/dist/services/tokenBalance.spec.js.map +1 -1
- package/dist/supported/tokens.d.ts +4 -4
- package/dist/supported/tokens.d.ts.map +1 -1
- package/dist/supported/tokens.js +5 -56
- package/dist/supported/tokens.js.map +1 -1
- package/dist/types/actions.d.ts +26 -2
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/asset.d.ts +3 -3
- package/dist/types/asset.d.ts.map +1 -1
- package/dist/types/lend/base.d.ts +10 -28
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/types/lend/contracts.d.ts +17 -0
- package/dist/types/lend/contracts.d.ts.map +1 -0
- package/dist/types/lend/contracts.js +2 -0
- package/dist/types/lend/contracts.js.map +1 -0
- package/dist/types/lend/index.d.ts +1 -0
- package/dist/types/lend/index.d.ts.map +1 -1
- package/dist/types/lend/index.js +1 -0
- package/dist/types/lend/index.js.map +1 -1
- package/dist/utils/assets.d.ts +7 -1
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +12 -1
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/assets.test.js +1 -1
- package/dist/utils/assets.test.js.map +1 -1
- package/dist/utils/constants.d.ts +5 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +5 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +13 -13
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +12 -12
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +12 -3
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +3 -2
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +2 -2
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +8 -2
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +14 -6
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +10 -6
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +39 -16
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +19 -7
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +9 -7
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +2 -2
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js +2 -2
- package/dist/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +9 -3
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +4 -4
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +4 -4
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js +1 -1
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js +1 -1
- package/dist/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +10 -3
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -3
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +7 -6
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +5 -4
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +2 -2
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +9 -2
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +6 -3
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +5 -4
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +10 -3
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +5 -4
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +3 -3
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +2 -2
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +8 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
- package/dist/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +22 -7
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js +1 -1
- package/dist/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +8 -4
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -2
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -3
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +7 -4
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +6 -0
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js +2 -2
- package/dist/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +2 -2
- package/dist/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +1 -1
- package/dist/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +6 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js +2 -2
- package/dist/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.js.map +1 -1
- package/package.json +4 -1
- package/src/{test → __mocks__}/MockPrivyClient.ts +1 -1
- package/src/{actions.test.ts → __tests__/actions.test.ts} +34 -95
- package/src/actions.ts +82 -26
- package/src/constants/assets.ts +92 -8
- package/src/constants/supportedChains.ts +10 -2
- package/src/core/asset/__mocks__/mockAsset.ts +1 -1
- package/src/index.ts +2 -3
- package/src/{test → lend/__mocks__}/MockLendProvider.ts +24 -27
- package/src/{test → lend/__mocks__}/MockMarkets.ts +1 -1
- package/src/lend/__mocks__/mockLendTransaction.ts +4 -26
- package/src/lend/core/LendProvider.ts +40 -7
- package/src/lend/core/__tests__/LendProvider.test.ts +21 -63
- package/src/lend/index.ts +1 -0
- package/src/lend/namespaces/ActionsLendNamespace.ts +2 -21
- package/src/lend/namespaces/BaseLendNamespace.ts +89 -0
- package/src/lend/namespaces/WalletLendNamespace.ts +39 -55
- package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +29 -22
- package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +137 -0
- package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +61 -26
- package/src/lend/providers/aave/AaveLendProvider.ts +395 -0
- package/src/lend/providers/aave/__mocks__/mockReserve.ts +84 -0
- package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +419 -0
- package/src/lend/providers/aave/abis/pool.ts +81 -0
- package/src/lend/providers/aave/addresses.ts +95 -0
- package/src/lend/providers/aave/sdk.ts +307 -0
- package/src/lend/providers/morpho/MorphoLendProvider.ts +23 -44
- package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +13 -85
- package/src/lend/providers/morpho/__tests__/api.test.ts +277 -51
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +1 -0
- package/src/lend/providers/morpho/contracts.ts +37 -0
- package/src/lend/providers/morpho/sdk.ts +235 -87
- package/src/services/tokenBalance.spec.ts +2 -2
- package/src/services/tokenBalance.ts +6 -7
- package/src/supported/tokens.ts +6 -57
- package/src/types/actions.ts +30 -2
- package/src/types/asset.ts +3 -3
- package/src/types/lend/base.ts +14 -33
- package/src/types/lend/contracts.ts +18 -0
- package/src/types/lend/index.ts +1 -0
- package/src/utils/assets.test.ts +1 -1
- package/src/utils/assets.ts +15 -1
- package/src/utils/constants.ts +4 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +2 -4
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +15 -15
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +14 -14
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +15 -4
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +3 -3
- package/src/wallet/core/providers/hosted/types/index.ts +8 -2
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +24 -9
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +45 -55
- package/src/wallet/core/wallets/abstract/Wallet.ts +25 -17
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +2 -2
- package/src/wallet/core/wallets/eoa/__tests__/EOAWallet.spec.ts +2 -2
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +17 -10
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +7 -10
- package/src/wallet/core/wallets/smart/default/utils/__tests__/findSignerInArray.spec.ts +1 -1
- package/src/wallet/core/wallets/smart/default/utils/__tests__/getSignerPublicKey.spec.ts +1 -1
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -5
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +8 -8
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +6 -4
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +3 -3
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +13 -4
- package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +5 -5
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +18 -6
- package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +4 -4
- package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +2 -2
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +16 -5
- package/src/wallet/node/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
- package/src/wallet/node/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +1 -1
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +31 -17
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +1 -1
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +10 -11
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -4
- package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +7 -8
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +6 -6
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +5 -7
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -5
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +6 -0
- package/src/wallet/react/wallets/hosted/dynamic/__tests__/DynamicWallet.spec.ts +2 -2
- package/src/wallet/react/wallets/hosted/dynamic/utils/__tests__/createSigner.spec.ts +1 -1
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +12 -5
- package/src/wallet/react/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +2 -2
- package/src/wallet/react/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +1 -1
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +12 -5
- package/src/wallet/react/wallets/hosted/turnkey/__tests__/TurnkeyWallet.spec.ts +2 -2
- package/src/wallet/react/wallets/hosted/turnkey/utils/__tests__/createSigner.spec.ts +1 -1
- package/dist/actions.test.d.ts.map +0 -1
- package/dist/actions.test.js.map +0 -1
- package/dist/constants/config.d.ts +0 -10
- package/dist/constants/config.d.ts.map +0 -1
- package/dist/constants/config.js +0 -10
- package/dist/constants/config.js.map +0 -1
- package/dist/test/MockAssets.d.ts.map +0 -1
- package/dist/test/MockAssets.js.map +0 -1
- package/dist/test/MockChainManager.d.ts.map +0 -1
- package/dist/test/MockChainManager.js.map +0 -1
- package/dist/test/MockLendProvider.d.ts.map +0 -1
- package/dist/test/MockLendProvider.js.map +0 -1
- package/dist/test/MockMarkets.d.ts.map +0 -1
- package/dist/test/MockMarkets.js.map +0 -1
- package/dist/test/MockPrivyClient.d.ts.map +0 -1
- package/dist/test/MockPrivyClient.js.map +0 -1
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js.map +0 -1
- package/src/constants/config.ts +0 -9
- /package/dist/{test → __mocks__}/MockAssets.d.ts +0 -0
- /package/dist/{test → __mocks__}/MockAssets.js +0 -0
- /package/dist/{test → __mocks__}/MockPrivyClient.d.ts +0 -0
- /package/dist/{test → __mocks__}/MockPrivyClient.js +0 -0
- /package/dist/{test → __mocks__}/utils.d.ts +0 -0
- /package/dist/{test → __mocks__}/utils.js +0 -0
- /package/dist/{actions.test.d.ts → __tests__/actions.test.d.ts} +0 -0
- /package/dist/{test → services/__mocks__}/MockChainManager.js +0 -0
- /package/src/{test → __mocks__}/MockAssets.ts +0 -0
- /package/src/{test → __mocks__}/utils.ts +0 -0
- /package/src/{test → services/__mocks__}/MockChainManager.ts +0 -0
package/src/types/lend/base.ts
CHANGED
|
@@ -30,7 +30,7 @@ export type LendMarketConfigMetadata = {
|
|
|
30
30
|
/** Asset information for this market */
|
|
31
31
|
asset: Asset
|
|
32
32
|
/** Lending provider type */
|
|
33
|
-
lendProvider: 'morpho'
|
|
33
|
+
lendProvider: 'morpho' | 'aave'
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -83,16 +83,13 @@ export interface LendTransaction {
|
|
|
83
83
|
marketId: string
|
|
84
84
|
/** Estimated APY at time of lending */
|
|
85
85
|
apy: number
|
|
86
|
-
/** Transaction data for execution
|
|
87
|
-
transactionData
|
|
86
|
+
/** Transaction data for execution */
|
|
87
|
+
transactionData: {
|
|
88
88
|
/** Approval transaction (if needed) */
|
|
89
89
|
approval?: TransactionData
|
|
90
|
-
/** Main
|
|
91
|
-
|
|
92
|
-
closePosition?: TransactionData
|
|
90
|
+
/** Main position transaction */
|
|
91
|
+
position: TransactionData
|
|
93
92
|
}
|
|
94
|
-
/** Slippage tolerance used */
|
|
95
|
-
slippage?: number
|
|
96
93
|
}
|
|
97
94
|
|
|
98
95
|
/**
|
|
@@ -204,8 +201,6 @@ export interface LendMarket {
|
|
|
204
201
|
* @description Configuration options for lending operations
|
|
205
202
|
*/
|
|
206
203
|
export interface LendOptions {
|
|
207
|
-
/** Maximum slippage tolerance (basis points) */
|
|
208
|
-
slippage?: number
|
|
209
204
|
/** Deadline for transaction (timestamp) */
|
|
210
205
|
deadline?: number
|
|
211
206
|
/** Gas limit override */
|
|
@@ -215,32 +210,16 @@ export interface LendOptions {
|
|
|
215
210
|
}
|
|
216
211
|
|
|
217
212
|
/**
|
|
218
|
-
*
|
|
219
|
-
* @description
|
|
213
|
+
* Individual lending provider configuration
|
|
214
|
+
* @description Configuration for a single lending provider
|
|
220
215
|
*/
|
|
221
|
-
export interface
|
|
222
|
-
/** Default slippage tolerance (basis points) */
|
|
223
|
-
defaultSlippage?: number
|
|
216
|
+
export interface LendProviderConfig {
|
|
224
217
|
/** Allowlist of markets available for lending */
|
|
225
218
|
marketAllowlist?: LendMarketConfig[]
|
|
219
|
+
/** Blocklist of markets to exclude from lending */
|
|
220
|
+
marketBlocklist?: LendMarketConfig[]
|
|
226
221
|
}
|
|
227
222
|
|
|
228
|
-
/**
|
|
229
|
-
* Morpho lending provider configuration
|
|
230
|
-
* @description Configuration specific to Morpho lending provider
|
|
231
|
-
*/
|
|
232
|
-
export interface MorphoLendConfig extends BaseLendConfig {
|
|
233
|
-
/** Lending provider name */
|
|
234
|
-
provider: 'morpho'
|
|
235
|
-
// Morpho-specific fields can be added here in the future
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Lending provider configuration
|
|
240
|
-
* @description Union of all possible lending provider configurations
|
|
241
|
-
*/
|
|
242
|
-
export type LendConfig = MorphoLendConfig
|
|
243
|
-
|
|
244
223
|
/**
|
|
245
224
|
* Market position information
|
|
246
225
|
* @description Position details for a user in a lending market
|
|
@@ -284,8 +263,10 @@ export interface LendOpenPositionParams extends LendOpenPositionBaseParams {
|
|
|
284
263
|
/**
|
|
285
264
|
* Internal parameters for provider _openPosition method with amount already converted to wei
|
|
286
265
|
*/
|
|
287
|
-
export interface LendOpenPositionInternalParams
|
|
288
|
-
|
|
266
|
+
export interface LendOpenPositionInternalParams extends Omit<
|
|
267
|
+
LendOpenPositionBaseParams,
|
|
268
|
+
'walletAddress'
|
|
269
|
+
> {
|
|
289
270
|
/** Amount to lend in wei */
|
|
290
271
|
amountWei: bigint
|
|
291
272
|
/** Wallet address for receiving shares and as owner (required in internal params) */
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address } from 'viem'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Morpho contract addresses needed per chain
|
|
5
|
+
*/
|
|
6
|
+
export interface MorphoContracts {
|
|
7
|
+
/** Morpho Blue core contract - market state, positions, supply/withdraw */
|
|
8
|
+
morphoBlue: Address
|
|
9
|
+
/** Interest Rate Model contract - borrow rate calculation for APY */
|
|
10
|
+
irm: Address
|
|
11
|
+
/** MetaMorpho vault factory (optional, only for vault creation) */
|
|
12
|
+
metaMorphoFactory?: Address
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Registry mapping chainId to Morpho contracts
|
|
17
|
+
*/
|
|
18
|
+
export type MorphoContractsRegistry = Record<number, MorphoContracts>
|
package/src/types/lend/index.ts
CHANGED
package/src/utils/assets.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest'
|
|
2
2
|
|
|
3
|
-
import { MockUSDCAsset, MockWETHAsset } from '@/
|
|
3
|
+
import { MockUSDCAsset, MockWETHAsset } from '@/__mocks__/MockAssets.js'
|
|
4
4
|
import { isAssetSupportedOnChain } from '@/utils/assets.js'
|
|
5
5
|
|
|
6
6
|
describe('Asset Utilities', () => {
|
package/src/utils/assets.ts
CHANGED
|
@@ -37,6 +37,15 @@ export function formatAssetAmount(amount: bigint, decimals: number): number {
|
|
|
37
37
|
return parseFloat(result)
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Check if asset is a native asset (e.g. ETH)
|
|
42
|
+
* @param asset - Asset definition
|
|
43
|
+
* @returns Whether the asset is native
|
|
44
|
+
*/
|
|
45
|
+
export function isNativeAsset(asset: Asset): boolean {
|
|
46
|
+
return asset.type === 'native'
|
|
47
|
+
}
|
|
48
|
+
|
|
40
49
|
/**
|
|
41
50
|
* Check if asset is supported on a specific chain
|
|
42
51
|
* @param asset - Asset definition
|
|
@@ -55,7 +64,7 @@ export function isAssetSupportedOnChain(
|
|
|
55
64
|
* @param asset - Asset definition
|
|
56
65
|
* @param chainId - Chain ID
|
|
57
66
|
* @returns Asset address on the specified chain
|
|
58
|
-
* @throws Error if asset is not supported on the chain
|
|
67
|
+
* @throws Error if asset is not supported on the chain or is a native asset
|
|
59
68
|
*/
|
|
60
69
|
export function getAssetAddress(
|
|
61
70
|
asset: Asset,
|
|
@@ -67,5 +76,10 @@ export function getAssetAddress(
|
|
|
67
76
|
`Asset ${asset.metadata.symbol} is not supported on chain ${chainId}`,
|
|
68
77
|
)
|
|
69
78
|
}
|
|
79
|
+
if (address === 'native') {
|
|
80
|
+
throw new Error(
|
|
81
|
+
`Asset ${asset.metadata.symbol} is a native asset and has no contract address.`,
|
|
82
|
+
)
|
|
83
|
+
}
|
|
70
84
|
return address
|
|
71
85
|
}
|
|
@@ -18,10 +18,8 @@ import type { SmartWallet } from '@/wallet/core/wallets/smart/abstract/SmartWall
|
|
|
18
18
|
export class WalletNamespace<
|
|
19
19
|
THostedProviderType extends string,
|
|
20
20
|
TToActionsMap extends Record<THostedProviderType, unknown>,
|
|
21
|
-
H extends HostedWalletProvider<
|
|
22
|
-
THostedProviderType,
|
|
23
|
-
TToActionsMap
|
|
24
|
-
> = HostedWalletProvider<THostedProviderType, TToActionsMap>,
|
|
21
|
+
H extends HostedWalletProvider<THostedProviderType, TToActionsMap> =
|
|
22
|
+
HostedWalletProvider<THostedProviderType, TToActionsMap>,
|
|
25
23
|
S extends SmartWalletProvider = SmartWalletProvider,
|
|
26
24
|
> {
|
|
27
25
|
private provider: WalletProvider<THostedProviderType, TToActionsMap, H, S>
|
|
@@ -3,16 +3,16 @@ import { getAddress } from 'viem'
|
|
|
3
3
|
import { unichain } from 'viem/chains'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
|
|
6
|
-
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
7
|
-
import type { ChainManager } from '@/services/ChainManager.js'
|
|
8
|
-
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
9
|
-
import { createMockLendProvider } from '@/test/MockLendProvider.js'
|
|
10
6
|
import {
|
|
11
7
|
createMockPrivyClient,
|
|
12
8
|
createMockPrivyWallet,
|
|
13
9
|
getMockAuthorizationContext,
|
|
14
|
-
} from '@/
|
|
15
|
-
import { getRandomAddress } from '@/
|
|
10
|
+
} from '@/__mocks__/MockPrivyClient.js'
|
|
11
|
+
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
12
|
+
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
13
|
+
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
14
|
+
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
15
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
16
16
|
import { WalletNamespace } from '@/wallet/core/namespace/WalletNamespace.js'
|
|
17
17
|
import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
|
|
18
18
|
import { WalletProvider } from '@/wallet/core/providers/WalletProvider.js'
|
|
@@ -46,7 +46,7 @@ describe('WalletNamespace', () => {
|
|
|
46
46
|
})
|
|
47
47
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
48
48
|
mockChainManager,
|
|
49
|
-
mockLendProvider,
|
|
49
|
+
{ morpho: mockLendProvider },
|
|
50
50
|
)
|
|
51
51
|
const walletProvider = new WalletProvider(
|
|
52
52
|
hostedWalletProvider,
|
|
@@ -71,7 +71,7 @@ describe('WalletNamespace', () => {
|
|
|
71
71
|
})
|
|
72
72
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
73
73
|
mockChainManager,
|
|
74
|
-
mockLendProvider,
|
|
74
|
+
{ morpho: mockLendProvider },
|
|
75
75
|
)
|
|
76
76
|
const walletProvider = new WalletProvider(
|
|
77
77
|
hostedWalletProvider,
|
|
@@ -92,7 +92,7 @@ describe('WalletNamespace', () => {
|
|
|
92
92
|
})
|
|
93
93
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
94
94
|
mockChainManager,
|
|
95
|
-
mockLendProvider,
|
|
95
|
+
{ morpho: mockLendProvider },
|
|
96
96
|
)
|
|
97
97
|
const walletProvider = new WalletProvider(
|
|
98
98
|
hostedWalletProvider,
|
|
@@ -133,7 +133,7 @@ describe('WalletNamespace', () => {
|
|
|
133
133
|
})
|
|
134
134
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
135
135
|
mockChainManager,
|
|
136
|
-
mockLendProvider,
|
|
136
|
+
{ morpho: mockLendProvider },
|
|
137
137
|
)
|
|
138
138
|
const walletProvider = new WalletProvider(
|
|
139
139
|
hostedWalletProvider,
|
|
@@ -217,7 +217,7 @@ describe('WalletNamespace', () => {
|
|
|
217
217
|
})
|
|
218
218
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
219
219
|
mockChainManager,
|
|
220
|
-
mockLendProvider,
|
|
220
|
+
{ morpho: mockLendProvider },
|
|
221
221
|
)
|
|
222
222
|
const walletProvider = new WalletProvider(
|
|
223
223
|
hostedWalletProvider,
|
|
@@ -259,7 +259,7 @@ describe('WalletNamespace', () => {
|
|
|
259
259
|
})
|
|
260
260
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
261
261
|
mockChainManager,
|
|
262
|
-
mockLendProvider,
|
|
262
|
+
{ morpho: mockLendProvider },
|
|
263
263
|
)
|
|
264
264
|
const walletProvider = new WalletProvider(
|
|
265
265
|
hostedWalletProvider,
|
|
@@ -295,7 +295,7 @@ describe('WalletNamespace', () => {
|
|
|
295
295
|
})
|
|
296
296
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
297
297
|
mockChainManager,
|
|
298
|
-
mockLendProvider,
|
|
298
|
+
{ morpho: mockLendProvider },
|
|
299
299
|
)
|
|
300
300
|
const walletProvider = new WalletProvider(
|
|
301
301
|
hostedWalletProvider,
|
|
@@ -338,7 +338,7 @@ describe('WalletNamespace', () => {
|
|
|
338
338
|
})
|
|
339
339
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
340
340
|
mockChainManager,
|
|
341
|
-
mockLendProvider,
|
|
341
|
+
{ morpho: mockLendProvider },
|
|
342
342
|
)
|
|
343
343
|
const walletProvider = new WalletProvider(
|
|
344
344
|
hostedWalletProvider,
|
|
@@ -368,7 +368,7 @@ describe('WalletNamespace', () => {
|
|
|
368
368
|
})
|
|
369
369
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
370
370
|
mockChainManager,
|
|
371
|
-
mockLendProvider,
|
|
371
|
+
{ morpho: mockLendProvider },
|
|
372
372
|
)
|
|
373
373
|
const walletProvider = new WalletProvider(
|
|
374
374
|
hostedWalletProvider,
|
|
@@ -2,16 +2,16 @@ import type { WaitForUserOperationReceiptReturnType } from 'viem/account-abstrac
|
|
|
2
2
|
import { unichain } from 'viem/chains'
|
|
3
3
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
4
|
|
|
5
|
-
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
6
|
-
import type { ChainManager } from '@/services/ChainManager.js'
|
|
7
|
-
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
8
|
-
import { createMockLendProvider } from '@/test/MockLendProvider.js'
|
|
9
5
|
import {
|
|
10
6
|
createMockPrivyClient,
|
|
11
7
|
createMockPrivyWallet,
|
|
12
8
|
getMockAuthorizationContext,
|
|
13
|
-
} from '@/
|
|
14
|
-
import { getRandomAddress } from '@/
|
|
9
|
+
} from '@/__mocks__/MockPrivyClient.js'
|
|
10
|
+
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
11
|
+
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
12
|
+
import { createMockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
13
|
+
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
14
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
15
15
|
import { DefaultSmartWalletProvider } from '@/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js'
|
|
16
16
|
import { WalletProvider } from '@/wallet/core/providers/WalletProvider.js'
|
|
17
17
|
import { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
@@ -42,7 +42,7 @@ describe('WalletProvider', () => {
|
|
|
42
42
|
})
|
|
43
43
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
44
44
|
mockChainManager,
|
|
45
|
-
mockLendProvider,
|
|
45
|
+
{ morpho: mockLendProvider },
|
|
46
46
|
)
|
|
47
47
|
const walletProvider = new WalletProvider(
|
|
48
48
|
hostedWalletProvider,
|
|
@@ -96,7 +96,7 @@ describe('WalletProvider', () => {
|
|
|
96
96
|
})
|
|
97
97
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
98
98
|
mockChainManager,
|
|
99
|
-
mockLendProvider,
|
|
99
|
+
{ morpho: mockLendProvider },
|
|
100
100
|
)
|
|
101
101
|
const walletProvider = new WalletProvider(
|
|
102
102
|
hostedWalletProvider,
|
|
@@ -151,7 +151,7 @@ describe('WalletProvider', () => {
|
|
|
151
151
|
})
|
|
152
152
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
153
153
|
mockChainManager,
|
|
154
|
-
mockLendProvider,
|
|
154
|
+
{ morpho: mockLendProvider },
|
|
155
155
|
)
|
|
156
156
|
const walletProvider = new WalletProvider(
|
|
157
157
|
hostedWalletProvider,
|
|
@@ -204,7 +204,7 @@ describe('WalletProvider', () => {
|
|
|
204
204
|
})
|
|
205
205
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
206
206
|
mockChainManager,
|
|
207
|
-
mockLendProvider,
|
|
207
|
+
{ morpho: mockLendProvider },
|
|
208
208
|
)
|
|
209
209
|
const walletProvider = new WalletProvider(
|
|
210
210
|
hostedWalletProvider,
|
|
@@ -237,7 +237,7 @@ describe('WalletProvider', () => {
|
|
|
237
237
|
})
|
|
238
238
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
239
239
|
mockChainManager,
|
|
240
|
-
mockLendProvider,
|
|
240
|
+
{ morpho: mockLendProvider },
|
|
241
241
|
)
|
|
242
242
|
const mockWalletAddress = getRandomAddress()
|
|
243
243
|
const getWalletAddressSpy = vi
|
|
@@ -284,7 +284,7 @@ describe('WalletProvider', () => {
|
|
|
284
284
|
})
|
|
285
285
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
286
286
|
mockChainManager,
|
|
287
|
-
mockLendProvider,
|
|
287
|
+
{ morpho: mockLendProvider },
|
|
288
288
|
)
|
|
289
289
|
const walletProvider = new WalletProvider(
|
|
290
290
|
hostedWalletProvider,
|
|
@@ -318,7 +318,7 @@ describe('WalletProvider', () => {
|
|
|
318
318
|
})
|
|
319
319
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
320
320
|
mockChainManager,
|
|
321
|
-
mockLendProvider,
|
|
321
|
+
{ morpho: mockLendProvider },
|
|
322
322
|
)
|
|
323
323
|
const walletProvider = new WalletProvider(
|
|
324
324
|
hostedWalletProvider,
|
|
@@ -358,7 +358,7 @@ describe('WalletProvider', () => {
|
|
|
358
358
|
})
|
|
359
359
|
const smartWalletProvider = new DefaultSmartWalletProvider(
|
|
360
360
|
mockChainManager,
|
|
361
|
-
mockLendProvider,
|
|
361
|
+
{ morpho: mockLendProvider },
|
|
362
362
|
)
|
|
363
363
|
const walletProvider = new WalletProvider(
|
|
364
364
|
hostedWalletProvider,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { LocalAccount } from 'viem'
|
|
2
2
|
|
|
3
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
3
4
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
4
|
-
import type {
|
|
5
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
6
|
+
import type { Asset } from '@/types/asset.js'
|
|
5
7
|
import type { Wallet } from '@/wallet/core/wallets/abstract/Wallet.js'
|
|
6
8
|
|
|
7
9
|
/**
|
|
@@ -15,14 +17,23 @@ export abstract class HostedWalletProvider<
|
|
|
15
17
|
TOptionsMap extends Record<TType, unknown>,
|
|
16
18
|
> {
|
|
17
19
|
protected chainManager: ChainManager
|
|
18
|
-
protected
|
|
20
|
+
protected lendProviders: {
|
|
21
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
22
|
+
aave?: LendProvider<LendProviderConfig>
|
|
23
|
+
}
|
|
24
|
+
protected supportedAssets?: Asset[]
|
|
19
25
|
|
|
20
26
|
protected constructor(
|
|
21
27
|
chainManager: ChainManager,
|
|
22
|
-
|
|
28
|
+
lendProviders?: {
|
|
29
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
30
|
+
aave?: LendProvider<LendProviderConfig>
|
|
31
|
+
},
|
|
32
|
+
supportedAssets?: Asset[],
|
|
23
33
|
) {
|
|
24
34
|
this.chainManager = chainManager
|
|
25
|
-
this.
|
|
35
|
+
this.lendProviders = lendProviders || {}
|
|
36
|
+
this.supportedAssets = supportedAssets
|
|
26
37
|
}
|
|
27
38
|
/**
|
|
28
39
|
* Convert a hosted wallet to an Actions wallet
|
package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts
CHANGED
|
@@ -2,12 +2,12 @@ import type { PrivyClient } from '@privy-io/node'
|
|
|
2
2
|
import { unichain } from 'viem/chains'
|
|
3
3
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
4
4
|
|
|
5
|
-
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
-
import { MockChainManager } from '@/test/MockChainManager.js'
|
|
7
5
|
import {
|
|
8
6
|
createMockPrivyClient,
|
|
9
7
|
getMockAuthorizationContext,
|
|
10
|
-
} from '@/
|
|
8
|
+
} from '@/__mocks__/MockPrivyClient.js'
|
|
9
|
+
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
10
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
11
11
|
import { HostedWalletProviderRegistry } from '@/wallet/core/providers/hosted/registry/HostedWalletProviderRegistry.js'
|
|
12
12
|
import { PrivyHostedWalletProvider } from '@/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js'
|
|
13
13
|
import type { NodeOptionsMap } from '@/wallet/node/providers/hosted/types/index.js'
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
1
2
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
2
|
-
import type {
|
|
3
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
4
|
+
import type { Asset } from '@/types/asset.js'
|
|
3
5
|
import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstract/HostedWalletProvider.js'
|
|
4
6
|
|
|
5
7
|
/**
|
|
@@ -10,7 +12,11 @@ import type { HostedWalletProvider } from '@/wallet/core/providers/hosted/abstra
|
|
|
10
12
|
*/
|
|
11
13
|
export interface HostedProviderDeps {
|
|
12
14
|
chainManager: ChainManager
|
|
13
|
-
|
|
15
|
+
lendProviders?: {
|
|
16
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
17
|
+
aave?: LendProvider<LendProviderConfig>
|
|
18
|
+
}
|
|
19
|
+
supportedAssets?: Asset[]
|
|
14
20
|
}
|
|
15
21
|
|
|
16
22
|
/**
|
|
@@ -2,8 +2,10 @@ import type { Address, Hex, LocalAccount } from 'viem'
|
|
|
2
2
|
import { keccak256, slice, toHex } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
5
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
|
-
import type {
|
|
7
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
8
|
+
import type { Asset } from '@/types/asset.js'
|
|
7
9
|
import { SmartWalletProvider } from '@/wallet/core/providers/smart/abstract/SmartWalletProvider.js'
|
|
8
10
|
import type { SmartWalletCreationResult } from '@/wallet/core/providers/smart/abstract/types/index.js'
|
|
9
11
|
import type { Signer } from '@/wallet/core/wallets/smart/abstract/types/index.js'
|
|
@@ -24,25 +26,36 @@ import { SmartWalletDeploymentError } from '@/wallet/core/wallets/smart/error/er
|
|
|
24
26
|
export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
25
27
|
/** Manages supported blockchain networks */
|
|
26
28
|
private chainManager: ChainManager
|
|
27
|
-
/**
|
|
28
|
-
private
|
|
29
|
+
/** Providers for lending market operations */
|
|
30
|
+
private lendProviders: {
|
|
31
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
32
|
+
aave?: LendProvider<LendProviderConfig>
|
|
33
|
+
}
|
|
34
|
+
/** Supported assets for this wallet provider */
|
|
35
|
+
private supportedAssets?: Asset[]
|
|
29
36
|
/** Optional 16-byte attribution suffix appended to callData */
|
|
30
37
|
private attributionSuffix?: Hex
|
|
31
38
|
|
|
32
39
|
/**
|
|
33
40
|
* Initialize the Smart Wallet Provider
|
|
34
41
|
* @param chainManager - Manages supported blockchain networks
|
|
35
|
-
* @param
|
|
36
|
-
* @param
|
|
42
|
+
* @param lendProviders - Providers for lending market operations
|
|
43
|
+
* @param supportedAssets - Optional list of supported assets
|
|
44
|
+
* @param attributionSuffix - Optional attribution suffix
|
|
37
45
|
*/
|
|
38
46
|
constructor(
|
|
39
47
|
chainManager: ChainManager,
|
|
40
|
-
|
|
48
|
+
lendProviders?: {
|
|
49
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
50
|
+
aave?: LendProvider<LendProviderConfig>
|
|
51
|
+
},
|
|
52
|
+
supportedAssets?: Asset[],
|
|
41
53
|
attributionSuffix?: string,
|
|
42
54
|
) {
|
|
43
55
|
super()
|
|
44
56
|
this.chainManager = chainManager
|
|
45
|
-
this.
|
|
57
|
+
this.lendProviders = lendProviders || {}
|
|
58
|
+
this.supportedAssets = supportedAssets
|
|
46
59
|
if (attributionSuffix) {
|
|
47
60
|
this.attributionSuffix =
|
|
48
61
|
DefaultSmartWalletProvider.computeAttributionSuffix(attributionSuffix)
|
|
@@ -79,7 +92,8 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
79
92
|
signers,
|
|
80
93
|
signer,
|
|
81
94
|
chainManager: this.chainManager,
|
|
82
|
-
|
|
95
|
+
lendProviders: this.lendProviders,
|
|
96
|
+
supportedAssets: this.supportedAssets,
|
|
83
97
|
nonce,
|
|
84
98
|
attributionSuffix: this.attributionSuffix,
|
|
85
99
|
})
|
|
@@ -167,7 +181,8 @@ export class DefaultSmartWalletProvider extends SmartWalletProvider {
|
|
|
167
181
|
signers,
|
|
168
182
|
signer,
|
|
169
183
|
chainManager: this.chainManager,
|
|
170
|
-
|
|
184
|
+
lendProviders: this.lendProviders,
|
|
185
|
+
supportedAssets: this.supportedAssets,
|
|
171
186
|
deploymentAddress: walletAddress,
|
|
172
187
|
attributionSuffix: this.attributionSuffix,
|
|
173
188
|
})
|