@eth-optimism/actions-sdk 0.1.0 → 0.3.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/{test → __mocks__}/MockAssets.js +2 -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} +5 -9
- package/dist/__tests__/actions.test.js.map +1 -0
- package/dist/actions.d.ts +20 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +37 -13
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +23 -0
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +99 -6
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/contracts.d.ts +4 -0
- package/dist/constants/contracts.d.ts.map +1 -0
- package/dist/constants/contracts.js +3 -0
- package/dist/constants/contracts.js.map +1 -0
- 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 +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/{test → lend/__mocks__}/MockLendProvider.d.ts +7 -6
- 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 +14 -8
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +29 -17
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/core/__tests__/LendProvider.test.js +4 -6
- package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts +2 -36
- package/dist/lend/namespaces/ActionsLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/ActionsLendNamespace.js +2 -48
- 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 -36
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.js +14 -69
- package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/__tests__/ActionsLendNamespace.spec.js +2 -2
- 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 +8 -10
- package/dist/lend/namespaces/__tests__/WalletLendNamespace.spec.js.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts +19 -27
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.js +124 -180
- package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
- 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/sdk.d.ts.map +1 -1
- package/dist/lend/providers/aave/sdk.js +6 -65
- package/dist/lend/providers/aave/sdk.js.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +0 -1
- 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 +5 -24
- 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 +3 -2
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/api.d.ts +4 -0
- package/dist/lend/providers/morpho/api.d.ts.map +1 -1
- package/dist/lend/providers/morpho/api.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.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +177 -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 +10 -70
- package/dist/supported/tokens.js.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
- package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
- package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
- package/dist/swap/core/SwapProvider.d.ts +56 -0
- package/dist/swap/core/SwapProvider.d.ts.map +1 -0
- package/dist/swap/core/SwapProvider.js +177 -0
- package/dist/swap/core/SwapProvider.js.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
- package/dist/swap/index.d.ts +7 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
- package/dist/swap/providers/uniswap/abis.d.ts +227 -0
- package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/abis.js +138 -0
- package/dist/swap/providers/uniswap/abis.js.map +1 -0
- package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
- package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/addresses.js +81 -0
- package/dist/swap/providers/uniswap/addresses.js.map +1 -0
- package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
- package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/encoding.js +233 -0
- package/dist/swap/providers/uniswap/encoding.js.map +1 -0
- package/dist/swap/providers/uniswap/types.d.ts +20 -0
- package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/types.js +2 -0
- package/dist/swap/providers/uniswap/types.js.map +1 -0
- package/dist/types/actions.d.ts +19 -5
- 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/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lend/base.d.ts +7 -22
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/types/lend/base.js.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/types/swap/base.d.ts +238 -0
- package/dist/types/swap/base.d.ts.map +1 -0
- package/dist/types/swap/base.js +4 -0
- package/dist/types/swap/base.js.map +1 -0
- package/dist/types/swap/index.d.ts +2 -0
- package/dist/types/swap/index.d.ts.map +1 -0
- package/dist/types/swap/index.js +2 -0
- package/dist/types/swap/index.js.map +1 -0
- package/dist/types/transaction.d.ts +14 -0
- package/dist/types/transaction.d.ts.map +1 -0
- package/dist/types/transaction.js +2 -0
- package/dist/types/transaction.js.map +1 -0
- package/dist/utils/assets.d.ts +11 -6
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +16 -12
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/assets.test.js +14 -2
- 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/utils/permit2.d.ts +46 -0
- package/dist/utils/permit2.d.ts.map +1 -0
- package/dist/utils/permit2.js +100 -0
- package/dist/utils/permit2.js.map +1 -0
- package/dist/utils/permit2.test.d.ts +2 -0
- package/dist/utils/permit2.test.d.ts.map +1 -0
- package/dist/utils/permit2.test.js +110 -0
- package/dist/utils/permit2.test.js.map +1 -0
- package/dist/utils/validation.d.ts +12 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +44 -0
- package/dist/utils/validation.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 +4 -4
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +4 -4
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
- 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 +5 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +5 -5
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
- 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 +7 -2
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js +3 -3
- 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 +6 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +4 -4
- 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 +4 -3
- 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 +5 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +2 -2
- package/dist/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
- 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 +5 -1
- 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 +7 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
- 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 +6 -2
- 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 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
- 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 +3 -2
- 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 -3
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js +2 -2
- package/dist/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.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 +7 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.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 +5 -1
- 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 +5 -1
- 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 +2 -2
- package/src/{test → __mocks__}/MockAssets.ts +2 -0
- package/src/{test → __mocks__}/MockPrivyClient.ts +1 -1
- package/src/{actions.test.ts → __tests__/actions.test.ts} +2 -6
- package/src/actions.ts +57 -19
- package/src/constants/assets.ts +108 -8
- package/src/constants/contracts.ts +5 -0
- package/src/constants/supportedChains.ts +10 -2
- package/src/core/asset/__mocks__/mockAsset.ts +1 -1
- package/src/index.ts +30 -2
- package/src/{test → lend/__mocks__}/MockLendProvider.ts +20 -23
- package/src/{test → lend/__mocks__}/MockMarkets.ts +1 -1
- package/src/lend/__mocks__/mockLendTransaction.ts +4 -26
- package/src/lend/core/LendProvider.ts +40 -20
- package/src/lend/core/__tests__/LendProvider.test.ts +4 -7
- package/src/lend/namespaces/ActionsLendNamespace.ts +2 -85
- package/src/lend/namespaces/BaseLendNamespace.ts +89 -0
- package/src/lend/namespaces/WalletLendNamespace.ts +25 -121
- package/src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts +10 -9
- package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +137 -0
- package/src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts +19 -22
- package/src/lend/providers/aave/AaveLendProvider.ts +163 -231
- 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/sdk.ts +7 -69
- package/src/lend/providers/morpho/MorphoLendProvider.ts +20 -41
- package/src/lend/providers/morpho/__tests__/MorphoLendProvider.test.ts +8 -32
- package/src/lend/providers/morpho/__tests__/api.test.ts +277 -51
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
- package/src/lend/providers/morpho/api.ts +4 -0
- package/src/lend/providers/morpho/contracts.ts +37 -0
- package/src/lend/providers/morpho/sdk.ts +241 -84
- package/src/services/tokenBalance.spec.ts +2 -2
- package/src/services/tokenBalance.ts +6 -7
- package/src/supported/tokens.ts +18 -77
- package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
- package/src/swap/core/SwapProvider.ts +319 -0
- package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
- package/src/swap/index.ts +14 -0
- package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
- package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
- package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
- package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
- package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
- package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
- package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
- package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
- package/src/swap/providers/uniswap/abis.ts +144 -0
- package/src/swap/providers/uniswap/addresses.ts +108 -0
- package/src/swap/providers/uniswap/encoding.ts +406 -0
- package/src/swap/providers/uniswap/types.ts +24 -0
- package/src/types/actions.ts +22 -6
- package/src/types/asset.ts +3 -3
- package/src/types/index.ts +2 -0
- package/src/types/lend/base.ts +12 -25
- package/src/types/lend/contracts.ts +18 -0
- package/src/types/lend/index.ts +1 -0
- package/src/types/swap/base.ts +259 -0
- package/src/types/swap/index.ts +1 -0
- package/src/types/transaction.ts +14 -0
- package/src/utils/assets.test.ts +17 -2
- package/src/utils/assets.ts +28 -11
- package/src/utils/constants.ts +4 -0
- package/src/utils/permit2.test.ts +142 -0
- package/src/utils/permit2.ts +144 -0
- package/src/utils/validation.ts +76 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +2 -4
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +6 -6
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +6 -6
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +3 -3
- package/src/wallet/core/providers/hosted/types/index.ts +5 -1
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +9 -9
- package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
- 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 +14 -5
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +3 -3
- 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 -2
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +5 -5
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +3 -3
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
- package/src/wallet/node/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +2 -2
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
- 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 +10 -2
- 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 +10 -2
- package/src/wallet/react/providers/hosted/dynamic/__mocks__/DynamicHostedWalletProviderMock.ts +1 -1
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +9 -5
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
- package/src/wallet/react/providers/hosted/privy/__mocks__/PrivyHostedWalletProviderMock.ts +1 -1
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +5 -5
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
- package/src/wallet/react/providers/hosted/turnkey/__tests__/TurnkeyHostedWalletProvider.spec.ts +2 -2
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +5 -7
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
- 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 +10 -2
- 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 +10 -2
- 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/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/dist/{test → __mocks__}/MockAssets.d.ts +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__}/utils.ts +0 -0
- /package/src/{test → services/__mocks__}/MockChainManager.ts +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { LendProvider } from '../core/LendProvider.js';
|
|
2
|
+
import type { AaveLendProvider } from '../providers/aave/AaveLendProvider.js';
|
|
3
|
+
import type { MorphoLendProvider } from '../providers/morpho/MorphoLendProvider.js';
|
|
4
|
+
import type { LendProviderConfig } from '../../types/actions.js';
|
|
5
|
+
import type { GetLendMarketParams, GetLendMarketsParams, LendMarket, LendMarketId } from '../../types/lend/index.js';
|
|
6
|
+
export type LendProviders = {
|
|
7
|
+
morpho?: LendProvider<LendProviderConfig>;
|
|
8
|
+
aave?: LendProvider<LendProviderConfig>;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Base Lend Namespace
|
|
12
|
+
* @description Shared lending operations for Actions and Wallet namespaces
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class BaseLendNamespace {
|
|
15
|
+
protected readonly providers: LendProviders;
|
|
16
|
+
constructor(providers: LendProviders);
|
|
17
|
+
/**
|
|
18
|
+
* Get all markets across all configured providers
|
|
19
|
+
* @param params - Optional filtering parameters
|
|
20
|
+
* @returns Promise resolving to array of markets from all providers
|
|
21
|
+
*/
|
|
22
|
+
getMarkets(params?: GetLendMarketsParams): Promise<LendMarket[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Get a specific market by routing to the correct provider
|
|
25
|
+
* @param params - Market identifier
|
|
26
|
+
* @returns Promise resolving to market information
|
|
27
|
+
*/
|
|
28
|
+
getMarket(params: GetLendMarketParams): Promise<LendMarket>;
|
|
29
|
+
/**
|
|
30
|
+
* Get supported chain IDs across all providers
|
|
31
|
+
* @returns Array of unique chain IDs supported by any provider
|
|
32
|
+
*/
|
|
33
|
+
supportedChainIds(): number[];
|
|
34
|
+
/**
|
|
35
|
+
* Get all configured providers
|
|
36
|
+
* @returns Array of configured providers
|
|
37
|
+
*/
|
|
38
|
+
protected getAllProviders(): Array<MorphoLendProvider | AaveLendProvider>;
|
|
39
|
+
/**
|
|
40
|
+
* Route a market to the correct provider
|
|
41
|
+
* @param marketId - Market identifier to route
|
|
42
|
+
* @returns The provider that handles this market
|
|
43
|
+
* @throws Error if no provider is found for the market
|
|
44
|
+
*/
|
|
45
|
+
protected getProviderForMarket(marketId: LendMarketId): MorphoLendProvider | AaveLendProvider;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=BaseLendNamespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseLendNamespace.d.ts","sourceRoot":"","sources":["../../../src/lend/namespaces/BaseLendNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAA;CACxC,CAAA;AAED;;;GAGG;AACH,8BAAsB,iBAAiB;IACzB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa;gBAAxB,SAAS,EAAE,aAAa;IAEvD;;;;OAIG;IACG,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1E;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjE;;;OAGG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAO7B;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;IAMzE;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,YAAY,GACrB,kBAAkB,GAAG,gBAAgB;CAczC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Lend Namespace
|
|
3
|
+
* @description Shared lending operations for Actions and Wallet namespaces
|
|
4
|
+
*/
|
|
5
|
+
export class BaseLendNamespace {
|
|
6
|
+
constructor(providers) {
|
|
7
|
+
this.providers = providers;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get all markets across all configured providers
|
|
11
|
+
* @param params - Optional filtering parameters
|
|
12
|
+
* @returns Promise resolving to array of markets from all providers
|
|
13
|
+
*/
|
|
14
|
+
async getMarkets(params = {}) {
|
|
15
|
+
const results = await Promise.all(this.getAllProviders().map((p) => p.getMarkets(params)));
|
|
16
|
+
return results.flat();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a specific market by routing to the correct provider
|
|
20
|
+
* @param params - Market identifier
|
|
21
|
+
* @returns Promise resolving to market information
|
|
22
|
+
*/
|
|
23
|
+
async getMarket(params) {
|
|
24
|
+
const provider = this.getProviderForMarket(params);
|
|
25
|
+
return provider.getMarket(params);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get supported chain IDs across all providers
|
|
29
|
+
* @returns Array of unique chain IDs supported by any provider
|
|
30
|
+
*/
|
|
31
|
+
supportedChainIds() {
|
|
32
|
+
const allChains = this.getAllProviders().flatMap((p) => p.supportedChainIds());
|
|
33
|
+
return [...new Set(allChains)];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get all configured providers
|
|
37
|
+
* @returns Array of configured providers
|
|
38
|
+
*/
|
|
39
|
+
getAllProviders() {
|
|
40
|
+
return [this.providers.morpho, this.providers.aave].filter(Boolean);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Route a market to the correct provider
|
|
44
|
+
* @param marketId - Market identifier to route
|
|
45
|
+
* @returns The provider that handles this market
|
|
46
|
+
* @throws Error if no provider is found for the market
|
|
47
|
+
*/
|
|
48
|
+
getProviderForMarket(marketId) {
|
|
49
|
+
for (const provider of this.getAllProviders()) {
|
|
50
|
+
const market = provider.config.marketAllowlist?.find((m) => m.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
51
|
+
m.chainId === marketId.chainId);
|
|
52
|
+
if (market)
|
|
53
|
+
return provider;
|
|
54
|
+
}
|
|
55
|
+
throw new Error(`No provider configured for market ${marketId.address} on chain ${marketId.chainId}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=BaseLendNamespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseLendNamespace.js","sourceRoot":"","sources":["../../../src/lend/namespaces/BaseLendNamespace.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,OAAgB,iBAAiB;IACrC,YAA+B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAE3D;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,SAA+B,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACxD,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAClD,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,CAAC,CAAC,iBAAiB,EAAE,CACtB,CAAA;QACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACO,eAAe;QACvB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CACxD,OAAO,CACwC,CAAA;IACnD,CAAC;IAED;;;;;OAKG;IACO,oBAAoB,CAC5B,QAAsB;QAEtB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAClD,CAAC,CAAe,EAAE,EAAE,CAClB,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC1D,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CACjC,CAAA;YACD,IAAI,MAAM;gBAAE,OAAO,QAAQ,CAAA;QAC7B,CAAC;QAED,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,CAAC,OAAO,aAAa,QAAQ,CAAC,OAAO,EAAE,CACrF,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,45 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { LendProviderConfig } from '../../types/actions.js';
|
|
3
|
-
import type { ClosePositionParams, GetLendMarketParams, GetLendMarketsParams, GetPositionParams, LendMarket, LendMarketPosition, LendOpenPositionParams, LendTransactionReceipt } from '../../types/lend/index.js';
|
|
1
|
+
import type { ClosePositionParams, GetPositionParams, LendMarketPosition, LendOpenPositionParams, LendTransactionReceipt } from '../../types/lend/index.js';
|
|
4
2
|
import type { Wallet } from '../../wallet/core/wallets/abstract/Wallet.js';
|
|
3
|
+
import { BaseLendNamespace, type LendProviders } from './BaseLendNamespace.js';
|
|
5
4
|
/**
|
|
6
5
|
* Wallet Lend Namespace
|
|
7
6
|
* @description Full lending operations available on wallet.lend
|
|
8
7
|
*/
|
|
9
|
-
export declare class WalletLendNamespace {
|
|
10
|
-
protected readonly providers: {
|
|
11
|
-
morpho?: LendProvider<LendProviderConfig>;
|
|
12
|
-
aave?: LendProvider<LendProviderConfig>;
|
|
13
|
-
};
|
|
8
|
+
export declare class WalletLendNamespace extends BaseLendNamespace {
|
|
14
9
|
private readonly wallet;
|
|
15
|
-
constructor(providers:
|
|
16
|
-
morpho?: LendProvider<LendProviderConfig>;
|
|
17
|
-
aave?: LendProvider<LendProviderConfig>;
|
|
18
|
-
}, wallet: Wallet);
|
|
19
|
-
/**
|
|
20
|
-
* Route a market to the correct provider
|
|
21
|
-
* @param marketId - Market identifier to route
|
|
22
|
-
* @returns The provider that handles this market
|
|
23
|
-
* @throws Error if no provider is found for the market
|
|
24
|
-
*/
|
|
25
|
-
private getProviderForMarket;
|
|
26
|
-
/**
|
|
27
|
-
* Get all markets across all configured providers
|
|
28
|
-
* @param params - Optional filtering parameters
|
|
29
|
-
* @returns Promise resolving to array of markets from all providers
|
|
30
|
-
*/
|
|
31
|
-
getMarkets(params?: GetLendMarketsParams): Promise<LendMarket[]>;
|
|
32
|
-
/**
|
|
33
|
-
* Get a specific market by routing to the correct provider
|
|
34
|
-
* @param params - Market identifier
|
|
35
|
-
* @returns Promise resolving to market information
|
|
36
|
-
*/
|
|
37
|
-
getMarket(params: GetLendMarketParams): Promise<LendMarket>;
|
|
38
|
-
/**
|
|
39
|
-
* Get supported chain IDs across all providers
|
|
40
|
-
* @returns Array of unique chain IDs supported by any provider
|
|
41
|
-
*/
|
|
42
|
-
supportedChainIds(): number[];
|
|
10
|
+
constructor(providers: LendProviders, wallet: Wallet);
|
|
43
11
|
/**
|
|
44
12
|
* Open a lending position
|
|
45
13
|
* @description Signs and sends a lend transaction from the wallet for the given amount and asset
|
|
@@ -65,5 +33,9 @@ export declare class WalletLendNamespace {
|
|
|
65
33
|
* @returns Promise resolving to transaction receipt
|
|
66
34
|
*/
|
|
67
35
|
closePosition(params: ClosePositionParams): Promise<LendTransactionReceipt>;
|
|
36
|
+
/**
|
|
37
|
+
* Execute a lend transaction with optional approval batching
|
|
38
|
+
*/
|
|
39
|
+
private executeTransaction;
|
|
68
40
|
}
|
|
69
41
|
//# sourceMappingURL=WalletLendNamespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletLendNamespace.d.ts","sourceRoot":"","sources":["../../../src/lend/namespaces/WalletLendNamespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WalletLendNamespace.d.ts","sourceRoot":"","sources":["../../../src/lend/namespaces/WalletLendNamespace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EAEtB,sBAAsB,EACvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE9E;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IAGtD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,SAAS,EAAE,aAAa,EACP,MAAM,EAAE,MAAM;IAKjC;;;;;;;OAOG;IACG,YAAY,CAChB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAWlC;;;;;;OAMG;IACG,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAczE;;;;;;OAMG;IACG,aAAa,CACjB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IAWlC;;OAEG;YACW,kBAAkB;CAejC"}
|
|
@@ -1,57 +1,13 @@
|
|
|
1
|
+
import { BaseLendNamespace } from './BaseLendNamespace.js';
|
|
1
2
|
/**
|
|
2
3
|
* Wallet Lend Namespace
|
|
3
4
|
* @description Full lending operations available on wallet.lend
|
|
4
5
|
*/
|
|
5
|
-
export class WalletLendNamespace {
|
|
6
|
+
export class WalletLendNamespace extends BaseLendNamespace {
|
|
6
7
|
constructor(providers, wallet) {
|
|
7
|
-
|
|
8
|
+
super(providers);
|
|
8
9
|
this.wallet = wallet;
|
|
9
10
|
}
|
|
10
|
-
/**
|
|
11
|
-
* Route a market to the correct provider
|
|
12
|
-
* @param marketId - Market identifier to route
|
|
13
|
-
* @returns The provider that handles this market
|
|
14
|
-
* @throws Error if no provider is found for the market
|
|
15
|
-
*/
|
|
16
|
-
getProviderForMarket(marketId) {
|
|
17
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(Boolean);
|
|
18
|
-
for (const provider of allProviders) {
|
|
19
|
-
const market = provider.config.marketAllowlist?.find((m) => m.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
20
|
-
m.chainId === marketId.chainId);
|
|
21
|
-
if (market) {
|
|
22
|
-
return provider;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
throw new Error(`No provider configured for market ${marketId.address} on chain ${marketId.chainId}`);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get all markets across all configured providers
|
|
29
|
-
* @param params - Optional filtering parameters
|
|
30
|
-
* @returns Promise resolving to array of markets from all providers
|
|
31
|
-
*/
|
|
32
|
-
async getMarkets(params = {}) {
|
|
33
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(Boolean);
|
|
34
|
-
const results = await Promise.all(allProviders.map((p) => p.getMarkets(params)));
|
|
35
|
-
return results.flat();
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get a specific market by routing to the correct provider
|
|
39
|
-
* @param params - Market identifier
|
|
40
|
-
* @returns Promise resolving to market information
|
|
41
|
-
*/
|
|
42
|
-
async getMarket(params) {
|
|
43
|
-
const provider = this.getProviderForMarket(params);
|
|
44
|
-
return provider.getMarket(params);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get supported chain IDs across all providers
|
|
48
|
-
* @returns Array of unique chain IDs supported by any provider
|
|
49
|
-
*/
|
|
50
|
-
supportedChainIds() {
|
|
51
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(Boolean);
|
|
52
|
-
const allChains = allProviders.flatMap((p) => p.supportedChainIds());
|
|
53
|
-
return [...new Set(allChains)];
|
|
54
|
-
}
|
|
55
11
|
/**
|
|
56
12
|
* Open a lending position
|
|
57
13
|
* @description Signs and sends a lend transaction from the wallet for the given amount and asset
|
|
@@ -66,17 +22,7 @@ export class WalletLendNamespace {
|
|
|
66
22
|
...params,
|
|
67
23
|
walletAddress: this.wallet.address,
|
|
68
24
|
});
|
|
69
|
-
|
|
70
|
-
if (!transactionData) {
|
|
71
|
-
throw new Error('No transaction data returned from lend provider');
|
|
72
|
-
}
|
|
73
|
-
if (transactionData.approval && transactionData.openPosition) {
|
|
74
|
-
return await this.wallet.sendBatch([transactionData.approval, transactionData.openPosition], params.marketId.chainId);
|
|
75
|
-
}
|
|
76
|
-
if (!transactionData.openPosition) {
|
|
77
|
-
throw new Error('No openPosition transaction data returned');
|
|
78
|
-
}
|
|
79
|
-
return await this.wallet.send(transactionData.openPosition, params.marketId.chainId);
|
|
25
|
+
return this.executeTransaction(lendTransaction, params.marketId.chainId);
|
|
80
26
|
}
|
|
81
27
|
/**
|
|
82
28
|
* Get position information for this wallet
|
|
@@ -105,18 +51,17 @@ export class WalletLendNamespace {
|
|
|
105
51
|
...params,
|
|
106
52
|
walletAddress: this.wallet.address,
|
|
107
53
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
throw new Error('No closePosition transaction data returned');
|
|
54
|
+
return this.executeTransaction(closeTransaction, params.marketId.chainId);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Execute a lend transaction with optional approval batching
|
|
58
|
+
*/
|
|
59
|
+
async executeTransaction(transaction, chainId) {
|
|
60
|
+
const { transactionData } = transaction;
|
|
61
|
+
if (transactionData.approval) {
|
|
62
|
+
return this.wallet.sendBatch([transactionData.approval, transactionData.position], chainId);
|
|
118
63
|
}
|
|
119
|
-
return
|
|
64
|
+
return this.wallet.send(transactionData.position, chainId);
|
|
120
65
|
}
|
|
121
66
|
}
|
|
122
67
|
//# sourceMappingURL=WalletLendNamespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletLendNamespace.js","sourceRoot":"","sources":["../../../src/lend/namespaces/WalletLendNamespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WalletLendNamespace.js","sourceRoot":"","sources":["../../../src/lend/namespaces/WalletLendNamespace.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,wBAAwB,CAAA;AAE9E;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,iBAAiB;IACxD,YACE,SAAwB,EACP,MAAc;QAE/B,KAAK,CAAC,SAAS,CAAC,CAAA;QAFC,WAAM,GAAN,MAAM,CAAQ;IAGjC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAChB,MAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAE3D,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC;YAClD,GAAG,MAAM;YACT,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SACnC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAE3D,OAAO,QAAQ,CAAC,WAAW,CACzB,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,CACb,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,MAA2B;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAE3D,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;YACpD,GAAG,MAAM;YACT,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SACnC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,WAA4B,EAC5B,OAAyB;QAEzB,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAAA;QAEvC,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAC1B,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EACpD,OAAO,CACR,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC5D,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { getRandomAddress } from '../../../__mocks__/utils.js';
|
|
3
|
+
import { createMockLendProvider } from '../../__mocks__/MockLendProvider.js';
|
|
2
4
|
import { ActionsLendNamespace } from '../ActionsLendNamespace.js';
|
|
3
|
-
import { createMockLendProvider } from '../../../test/MockLendProvider.js';
|
|
4
|
-
import { getRandomAddress } from '../../../test/utils.js';
|
|
5
5
|
describe('ActionsLendNamespace', () => {
|
|
6
6
|
let mockProvider;
|
|
7
7
|
let mockMarketId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionsLendNamespace.spec.js","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionsLendNamespace.spec.js","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/ActionsLendNamespace.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAEhF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,YAA8B,CAAA;IAClC,IAAI,YAAgD,CAAA;IAEpD,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,GAAY,EAAE,CAAA;QAErE,YAAY,GAAG,sBAAsB,CAAC;YACpC,eAAe,EAAE;gBACf;oBACE,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE;wBACpC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE;wBAC3D,IAAI,EAAE,OAAgB;qBACvB;oBACD,YAAY,EAAE,QAAQ;iBACvB;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QAEpE,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QAEhD,MAAM,SAAS,CAAC,UAAU,EAAE,CAAA;QAE5B,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE/C,MAAM,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAEvC,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;QACpE,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAA;QAEvD,SAAS,CAAC,iBAAiB,EAAE,CAAA;QAE7B,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseLendNamespace.spec.d.ts","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { getRandomAddress } from '../../../__mocks__/utils.js';
|
|
3
|
+
import { createMockLendProvider } from '../../__mocks__/MockLendProvider.js';
|
|
4
|
+
import { BaseLendNamespace } from '../BaseLendNamespace.js';
|
|
5
|
+
// Concrete implementation for testing
|
|
6
|
+
class TestLendNamespace extends BaseLendNamespace {
|
|
7
|
+
}
|
|
8
|
+
describe('BaseLendNamespace', () => {
|
|
9
|
+
let mockMorphoProvider;
|
|
10
|
+
let mockAaveProvider;
|
|
11
|
+
let mockMarketId;
|
|
12
|
+
let aaveMarketId;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
mockMarketId = { address: getRandomAddress(), chainId: 130 };
|
|
15
|
+
aaveMarketId = { address: getRandomAddress(), chainId: 130 };
|
|
16
|
+
mockMorphoProvider = createMockLendProvider({
|
|
17
|
+
marketAllowlist: [
|
|
18
|
+
{
|
|
19
|
+
address: mockMarketId.address,
|
|
20
|
+
chainId: mockMarketId.chainId,
|
|
21
|
+
name: 'Morpho Market',
|
|
22
|
+
asset: {
|
|
23
|
+
address: { 130: getRandomAddress() },
|
|
24
|
+
metadata: { symbol: 'USDC', name: 'USD Coin', decimals: 6 },
|
|
25
|
+
type: 'erc20',
|
|
26
|
+
},
|
|
27
|
+
lendProvider: 'morpho',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
mockAaveProvider = createMockLendProvider({
|
|
32
|
+
marketAllowlist: [
|
|
33
|
+
{
|
|
34
|
+
address: aaveMarketId.address,
|
|
35
|
+
chainId: aaveMarketId.chainId,
|
|
36
|
+
name: 'Aave Market',
|
|
37
|
+
asset: {
|
|
38
|
+
address: { 130: getRandomAddress() },
|
|
39
|
+
metadata: { symbol: 'USDC', name: 'USD Coin', decimals: 6 },
|
|
40
|
+
type: 'erc20',
|
|
41
|
+
},
|
|
42
|
+
lendProvider: 'aave',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('getMarkets', () => {
|
|
48
|
+
it('should aggregate markets from all providers', async () => {
|
|
49
|
+
const namespace = new TestLendNamespace({
|
|
50
|
+
morpho: mockMorphoProvider,
|
|
51
|
+
aave: mockAaveProvider,
|
|
52
|
+
});
|
|
53
|
+
const markets = await namespace.getMarkets();
|
|
54
|
+
expect(markets).toHaveLength(2);
|
|
55
|
+
});
|
|
56
|
+
it('should work with single provider', async () => {
|
|
57
|
+
const namespace = new TestLendNamespace({
|
|
58
|
+
morpho: mockMorphoProvider,
|
|
59
|
+
});
|
|
60
|
+
const markets = await namespace.getMarkets();
|
|
61
|
+
expect(markets).toHaveLength(1);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('getMarket', () => {
|
|
65
|
+
it('should route to correct provider based on market', async () => {
|
|
66
|
+
const namespace = new TestLendNamespace({
|
|
67
|
+
morpho: mockMorphoProvider,
|
|
68
|
+
aave: mockAaveProvider,
|
|
69
|
+
});
|
|
70
|
+
const morphoSpy = vi.spyOn(mockMorphoProvider, 'getMarket');
|
|
71
|
+
const aaveSpy = vi.spyOn(mockAaveProvider, 'getMarket');
|
|
72
|
+
await namespace.getMarket(mockMarketId);
|
|
73
|
+
expect(morphoSpy).toHaveBeenCalledWith(mockMarketId);
|
|
74
|
+
expect(aaveSpy).not.toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
it('should throw if no provider found for market', async () => {
|
|
77
|
+
const namespace = new TestLendNamespace({
|
|
78
|
+
morpho: mockMorphoProvider,
|
|
79
|
+
});
|
|
80
|
+
const unknownMarket = {
|
|
81
|
+
address: getRandomAddress(),
|
|
82
|
+
chainId: 130,
|
|
83
|
+
};
|
|
84
|
+
await expect(namespace.getMarket(unknownMarket)).rejects.toThrow('No provider configured for market');
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('supportedChainIds', () => {
|
|
88
|
+
it('should return unique chain IDs from all providers', () => {
|
|
89
|
+
const namespace = new TestLendNamespace({
|
|
90
|
+
morpho: mockMorphoProvider,
|
|
91
|
+
aave: mockAaveProvider,
|
|
92
|
+
});
|
|
93
|
+
const chainIds = namespace.supportedChainIds();
|
|
94
|
+
expect(chainIds).toContain(1);
|
|
95
|
+
expect(chainIds).toContain(130);
|
|
96
|
+
expect(chainIds).toContain(8453);
|
|
97
|
+
expect(chainIds).toContain(84532);
|
|
98
|
+
});
|
|
99
|
+
it('should deduplicate chain IDs', () => {
|
|
100
|
+
const namespace = new TestLendNamespace({
|
|
101
|
+
morpho: mockMorphoProvider,
|
|
102
|
+
aave: mockAaveProvider,
|
|
103
|
+
});
|
|
104
|
+
const chainIds = namespace.supportedChainIds();
|
|
105
|
+
const uniqueChainIds = [...new Set(chainIds)];
|
|
106
|
+
expect(chainIds).toEqual(uniqueChainIds);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=BaseLendNamespace.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseLendNamespace.spec.js","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { getRandomAddress } from '../../../__mocks__/utils.js';
|
|
3
|
+
import { createMockLendProvider } from '../../__mocks__/MockLendProvider.js';
|
|
2
4
|
import { WalletLendNamespace } from '../WalletLendNamespace.js';
|
|
3
|
-
import { createMockLendProvider } from '../../../test/MockLendProvider.js';
|
|
4
|
-
import { getRandomAddress } from '../../../test/utils.js';
|
|
5
5
|
import { createMock as createSmartWalletMock } from '../../../wallet/core/wallets/smart/abstract/__mocks__/SmartWallet.js';
|
|
6
6
|
describe('WalletLendNamespace', () => {
|
|
7
7
|
const mockWalletAddress = getRandomAddress();
|
|
@@ -97,13 +97,12 @@ describe('WalletLendNamespace', () => {
|
|
|
97
97
|
marketId: marketId.address,
|
|
98
98
|
apy: 0.05,
|
|
99
99
|
transactionData: {
|
|
100
|
-
|
|
100
|
+
position: {
|
|
101
101
|
to: marketId.address,
|
|
102
102
|
value: 0n,
|
|
103
103
|
data: '0x',
|
|
104
104
|
},
|
|
105
105
|
},
|
|
106
|
-
slippage: 50,
|
|
107
106
|
};
|
|
108
107
|
vi.mocked(mockProvider.openPosition).mockResolvedValue(mockTransaction);
|
|
109
108
|
const result = await namespace.openPosition({
|
|
@@ -137,7 +136,7 @@ describe('WalletLendNamespace', () => {
|
|
|
137
136
|
marketId: closeParams.marketId.address,
|
|
138
137
|
apy: 0.05,
|
|
139
138
|
transactionData: {
|
|
140
|
-
|
|
139
|
+
position: {
|
|
141
140
|
to: closeParams.marketId.address,
|
|
142
141
|
value: 0n,
|
|
143
142
|
data: '0x',
|
|
@@ -151,7 +150,7 @@ describe('WalletLendNamespace', () => {
|
|
|
151
150
|
walletAddress: mockWallet.address,
|
|
152
151
|
options: undefined,
|
|
153
152
|
});
|
|
154
|
-
expect(mockWallet.send).toHaveBeenCalledWith(mockTransaction.transactionData.
|
|
153
|
+
expect(mockWallet.send).toHaveBeenCalledWith(mockTransaction.transactionData.position, 130);
|
|
155
154
|
expect(result).toEqual({
|
|
156
155
|
receipt: { success: true },
|
|
157
156
|
userOpHash: '0xmockhash',
|
|
@@ -176,7 +175,7 @@ describe('WalletLendNamespace', () => {
|
|
|
176
175
|
value: 0n,
|
|
177
176
|
data: '0xapproval',
|
|
178
177
|
};
|
|
179
|
-
const
|
|
178
|
+
const position = {
|
|
180
179
|
to: marketId.address,
|
|
181
180
|
value: 0n,
|
|
182
181
|
data: '0xdeposit',
|
|
@@ -187,8 +186,7 @@ describe('WalletLendNamespace', () => {
|
|
|
187
186
|
marketId: marketId.address,
|
|
188
187
|
apy: 0.05,
|
|
189
188
|
timestamp: Date.now(),
|
|
190
|
-
transactionData: { approval,
|
|
191
|
-
slippage: 50,
|
|
189
|
+
transactionData: { approval, position },
|
|
192
190
|
};
|
|
193
191
|
vi.mocked(mockProvider.openPosition).mockResolvedValue(mockTransaction);
|
|
194
192
|
const result = await namespace.openPosition({
|
|
@@ -196,7 +194,7 @@ describe('WalletLendNamespace', () => {
|
|
|
196
194
|
asset: mockAsset,
|
|
197
195
|
marketId,
|
|
198
196
|
});
|
|
199
|
-
expect(mockWallet.sendBatch).toHaveBeenCalledWith([approval,
|
|
197
|
+
expect(mockWallet.sendBatch).toHaveBeenCalledWith([approval, position], 130);
|
|
200
198
|
expect(result).toEqual({
|
|
201
199
|
receipt: { success: true },
|
|
202
200
|
userOpHash: '0xmockbatchhash',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletLendNamespace.spec.js","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WalletLendNamespace.spec.js","sourceRoot":"","sources":["../../../../src/lend/namespaces/__tests__/WalletLendNamespace.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,20 +13,12 @@ export declare const SUPPORTED_CHAIN_IDS: readonly number[];
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class AaveLendProvider extends LendProvider<LendProviderConfig> {
|
|
15
15
|
protected readonly SUPPORTED_CHAIN_IDS: readonly number[];
|
|
16
|
-
private chainManager;
|
|
17
16
|
/**
|
|
18
17
|
* Create a new Aave lending provider
|
|
19
18
|
* @param config - Aave lending configuration
|
|
20
19
|
* @param chainManager - Chain manager for blockchain interactions
|
|
21
20
|
*/
|
|
22
21
|
constructor(config: LendProviderConfig, chainManager: ChainManager);
|
|
23
|
-
/**
|
|
24
|
-
* Check if market is a WETH market
|
|
25
|
-
* @param marketId - Market identifier
|
|
26
|
-
* @returns true if market is for WETH
|
|
27
|
-
* @description WETH is a predeploy at the same address on all OP Stack chains
|
|
28
|
-
*/
|
|
29
|
-
private isWETHMarket;
|
|
30
22
|
/**
|
|
31
23
|
* Open a lending position in an Aave market
|
|
32
24
|
* @description Opens a lending position by supplying assets to an Aave reserve
|
|
@@ -34,16 +26,6 @@ export declare class AaveLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
34
26
|
* @returns Promise resolving to lending transaction details
|
|
35
27
|
*/
|
|
36
28
|
protected _openPosition(params: LendOpenPositionInternalParams): Promise<LendTransaction>;
|
|
37
|
-
/**
|
|
38
|
-
* Open position for WETH market using WETHGateway
|
|
39
|
-
* @description Deposits native ETH via WETHGateway which wraps and deposits in one tx
|
|
40
|
-
*/
|
|
41
|
-
private _openWETHPosition;
|
|
42
|
-
/**
|
|
43
|
-
* Open position for standard ERC-20 tokens
|
|
44
|
-
* @description Standard approve + supply flow for non-WETH assets
|
|
45
|
-
*/
|
|
46
|
-
private _openERC20Position;
|
|
47
29
|
/**
|
|
48
30
|
* Close a position in an Aave market
|
|
49
31
|
* @description Withdraws assets from an Aave reserve
|
|
@@ -51,15 +33,6 @@ export declare class AaveLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
51
33
|
* @returns Promise resolving to withdrawal transaction details
|
|
52
34
|
*/
|
|
53
35
|
protected _closePosition(params: LendClosePositionParams): Promise<LendTransaction>;
|
|
54
|
-
/**
|
|
55
|
-
* Close position for WETH market using WETHGateway
|
|
56
|
-
* @description Withdraws aWETH, unwraps to ETH, and sends to user
|
|
57
|
-
*/
|
|
58
|
-
private _closeWETHPosition;
|
|
59
|
-
/**
|
|
60
|
-
* Close position for standard ERC-20 tokens
|
|
61
|
-
*/
|
|
62
|
-
private _closeERC20Position;
|
|
63
36
|
/**
|
|
64
37
|
* Get detailed market information
|
|
65
38
|
* @param marketId - Market identifier containing address and chainId
|
|
@@ -78,5 +51,24 @@ export declare class AaveLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
78
51
|
* @returns Promise resolving to position information
|
|
79
52
|
*/
|
|
80
53
|
protected _getPosition(params: GetMarketBalanceParams): Promise<LendMarketPosition>;
|
|
54
|
+
/**
|
|
55
|
+
* Open position for native ETH using WETHGateway
|
|
56
|
+
* @description Deposits native ETH via WETHGateway which wraps and deposits in one tx
|
|
57
|
+
*/
|
|
58
|
+
private _openETHPosition;
|
|
59
|
+
/**
|
|
60
|
+
* Open position for standard ERC-20 tokens
|
|
61
|
+
* @description Standard approve + supply flow for non-WETH assets
|
|
62
|
+
*/
|
|
63
|
+
private _openERC20Position;
|
|
64
|
+
/**
|
|
65
|
+
* Close position for native ETH using WETHGateway
|
|
66
|
+
* @description Withdraws aWETH, unwraps to ETH, and sends to user
|
|
67
|
+
*/
|
|
68
|
+
private _closeETHPosition;
|
|
69
|
+
/**
|
|
70
|
+
* Close position for standard ERC-20 tokens
|
|
71
|
+
*/
|
|
72
|
+
private _closeERC20Position;
|
|
81
73
|
}
|
|
82
74
|
//# sourceMappingURL=AaveLendProvider.d.ts.map
|