@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
|
@@ -2,6 +2,8 @@ import type { Address } from 'viem'
|
|
|
2
2
|
import { type MockedFunction, vi } from 'vitest'
|
|
3
3
|
|
|
4
4
|
import { LendProvider } from '@/lend/core/LendProvider.js'
|
|
5
|
+
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
6
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
7
|
import type { LendProviderConfig } from '@/types/actions.js'
|
|
6
8
|
import type { Asset } from '@/types/asset.js'
|
|
7
9
|
import type {
|
|
@@ -15,7 +17,6 @@ import type {
|
|
|
15
17
|
LendMarketPosition,
|
|
16
18
|
LendOpenPositionInternalParams,
|
|
17
19
|
LendOpenPositionParams,
|
|
18
|
-
LendOptions,
|
|
19
20
|
LendTransaction,
|
|
20
21
|
} from '@/types/lend/index.js'
|
|
21
22
|
|
|
@@ -55,7 +56,6 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
55
56
|
amount: bigint,
|
|
56
57
|
chainId: number,
|
|
57
58
|
marketId?: string,
|
|
58
|
-
options?: LendOptions,
|
|
59
59
|
) => Promise<LendTransaction>
|
|
60
60
|
>
|
|
61
61
|
|
|
@@ -73,8 +73,12 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
73
73
|
constructor(
|
|
74
74
|
config?: LendProviderConfig,
|
|
75
75
|
mockConfig?: Partial<MockLendProviderConfig>,
|
|
76
|
+
chainManager?: ChainManager,
|
|
76
77
|
) {
|
|
77
|
-
super(
|
|
78
|
+
super(
|
|
79
|
+
config || {},
|
|
80
|
+
chainManager || (new MockChainManager() as unknown as ChainManager),
|
|
81
|
+
)
|
|
78
82
|
|
|
79
83
|
this.mockConfig = {
|
|
80
84
|
supportedChains: mockConfig?.supportedChains ?? [84532],
|
|
@@ -187,7 +191,7 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
187
191
|
params: LendClosePositionParams,
|
|
188
192
|
): Promise<LendTransaction> {
|
|
189
193
|
const assetAddress = params.asset?.address[params.marketId.chainId]
|
|
190
|
-
if (!assetAddress) {
|
|
194
|
+
if (!assetAddress || assetAddress === 'native') {
|
|
191
195
|
throw new Error(`Asset not supported on chain ${params.marketId.chainId}`)
|
|
192
196
|
}
|
|
193
197
|
|
|
@@ -196,7 +200,6 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
196
200
|
params.amount,
|
|
197
201
|
params.marketId.chainId,
|
|
198
202
|
params.marketId.address,
|
|
199
|
-
params.options,
|
|
200
203
|
)
|
|
201
204
|
}
|
|
202
205
|
|
|
@@ -204,11 +207,10 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
204
207
|
amount,
|
|
205
208
|
asset,
|
|
206
209
|
marketId,
|
|
207
|
-
options,
|
|
208
210
|
}: LendOpenPositionParams): Promise<LendTransaction> {
|
|
209
211
|
// Get asset address for the chain
|
|
210
212
|
const assetAddress = asset.address[marketId.chainId]
|
|
211
|
-
if (!assetAddress) {
|
|
213
|
+
if (!assetAddress || assetAddress === 'native') {
|
|
212
214
|
throw new Error(`Asset not supported on chain ${marketId.chainId}`)
|
|
213
215
|
}
|
|
214
216
|
|
|
@@ -220,14 +222,13 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
220
222
|
asset: assetAddress,
|
|
221
223
|
marketId: marketId.address,
|
|
222
224
|
apy: this.mockConfig.defaultApy,
|
|
223
|
-
slippage: options?.slippage ?? 50,
|
|
224
225
|
transactionData: {
|
|
225
226
|
approval: {
|
|
226
227
|
to: assetAddress,
|
|
227
228
|
data: '0x095ea7b3' as Address,
|
|
228
229
|
value: 0n,
|
|
229
230
|
},
|
|
230
|
-
|
|
231
|
+
position: {
|
|
231
232
|
to: marketId.address,
|
|
232
233
|
data: '0x6e553f65' as Address,
|
|
233
234
|
value: 0n,
|
|
@@ -240,11 +241,10 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
240
241
|
amountWei,
|
|
241
242
|
asset,
|
|
242
243
|
marketId,
|
|
243
|
-
options,
|
|
244
244
|
}: LendOpenPositionInternalParams): Promise<LendTransaction> {
|
|
245
245
|
// Get asset address for the chain
|
|
246
246
|
const assetAddress = asset.address[marketId.chainId]
|
|
247
|
-
if (!assetAddress) {
|
|
247
|
+
if (!assetAddress || assetAddress === 'native') {
|
|
248
248
|
throw new Error(`Asset not supported on chain ${marketId.chainId}`)
|
|
249
249
|
}
|
|
250
250
|
|
|
@@ -253,14 +253,13 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
253
253
|
asset: assetAddress,
|
|
254
254
|
marketId: marketId.address,
|
|
255
255
|
apy: this.mockConfig.defaultApy,
|
|
256
|
-
slippage: options?.slippage ?? 50,
|
|
257
256
|
transactionData: {
|
|
258
257
|
approval: {
|
|
259
258
|
to: assetAddress,
|
|
260
259
|
data: '0x095ea7b3' as Address,
|
|
261
260
|
value: 0n,
|
|
262
261
|
},
|
|
263
|
-
|
|
262
|
+
position: {
|
|
264
263
|
to: marketId.address,
|
|
265
264
|
data: '0x6e553f65' as Address,
|
|
266
265
|
value: 0n,
|
|
@@ -335,21 +334,21 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
335
334
|
amount,
|
|
336
335
|
asset,
|
|
337
336
|
marketId,
|
|
338
|
-
options,
|
|
339
337
|
}: ClosePositionParams): Promise<LendTransaction> {
|
|
340
338
|
// If asset provided, use its address for the chain; otherwise use a mock asset
|
|
341
|
-
const
|
|
342
|
-
|
|
343
|
-
|
|
339
|
+
const rawAddress = asset?.address[marketId.chainId]
|
|
340
|
+
const assetAddress: Address =
|
|
341
|
+
rawAddress && rawAddress !== 'native'
|
|
342
|
+
? rawAddress
|
|
343
|
+
: ('0x1234567890123456789012345678901234567890' as Address)
|
|
344
344
|
|
|
345
345
|
return {
|
|
346
346
|
amount: BigInt(amount),
|
|
347
347
|
asset: assetAddress,
|
|
348
348
|
marketId: marketId.address,
|
|
349
349
|
apy: 0,
|
|
350
|
-
slippage: options?.slippage ?? 50,
|
|
351
350
|
transactionData: {
|
|
352
|
-
|
|
351
|
+
position: {
|
|
353
352
|
to: marketId.address,
|
|
354
353
|
data: '0xb460af94' as Address,
|
|
355
354
|
value: 0n,
|
|
@@ -361,18 +360,16 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
361
360
|
private async createMockWithdraw(
|
|
362
361
|
asset: Address,
|
|
363
362
|
amount: bigint,
|
|
364
|
-
|
|
363
|
+
_chainId: number,
|
|
365
364
|
marketId?: string,
|
|
366
|
-
options?: LendOptions,
|
|
367
365
|
): Promise<LendTransaction> {
|
|
368
366
|
return {
|
|
369
367
|
amount,
|
|
370
368
|
asset,
|
|
371
369
|
marketId: marketId || 'mock-market',
|
|
372
370
|
apy: 0,
|
|
373
|
-
slippage: options?.slippage ?? 50,
|
|
374
371
|
transactionData: {
|
|
375
|
-
|
|
372
|
+
position: {
|
|
376
373
|
to:
|
|
377
374
|
(marketId as Address) ||
|
|
378
375
|
('0x1234567890123456789012345678901234567890' as Address),
|
|
@@ -3,14 +3,14 @@ import type { Address } from 'viem'
|
|
|
3
3
|
import type { LendTransaction, TransactionData } from '@/types/lend/index.js'
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Creates a mock lend transaction for testing
|
|
6
|
+
* Creates a mock lend transaction for testing
|
|
7
7
|
*/
|
|
8
|
-
export function
|
|
8
|
+
export function createMockLendTransaction(params: {
|
|
9
9
|
amount: bigint
|
|
10
10
|
asset: Address
|
|
11
11
|
marketId: Address
|
|
12
12
|
approval?: TransactionData
|
|
13
|
-
|
|
13
|
+
position: TransactionData
|
|
14
14
|
}): LendTransaction {
|
|
15
15
|
return {
|
|
16
16
|
amount: params.amount,
|
|
@@ -19,29 +19,7 @@ export function createMockOpenTransaction(params: {
|
|
|
19
19
|
apy: 0.05,
|
|
20
20
|
transactionData: {
|
|
21
21
|
approval: params.approval,
|
|
22
|
-
|
|
22
|
+
position: params.position,
|
|
23
23
|
},
|
|
24
|
-
slippage: 50,
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Creates a mock lend transaction for testing closePosition
|
|
30
|
-
*/
|
|
31
|
-
export function createMockCloseTransaction(params: {
|
|
32
|
-
amount: bigint
|
|
33
|
-
asset: Address
|
|
34
|
-
marketId: Address
|
|
35
|
-
closePosition: TransactionData
|
|
36
|
-
}): LendTransaction {
|
|
37
|
-
return {
|
|
38
|
-
amount: params.amount,
|
|
39
|
-
asset: params.asset,
|
|
40
|
-
marketId: params.marketId,
|
|
41
|
-
apy: 0.05,
|
|
42
|
-
transactionData: {
|
|
43
|
-
closePosition: params.closePosition,
|
|
44
|
-
},
|
|
45
|
-
slippage: 50,
|
|
46
24
|
}
|
|
47
25
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
|
-
import { parseUnits } from 'viem'
|
|
2
|
+
import { encodeFunctionData, erc20Abi, parseUnits } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
5
6
|
import type { LendProviderConfig } from '@/types/actions.js'
|
|
6
7
|
import type { Asset } from '@/types/asset.js'
|
|
7
8
|
import type {
|
|
@@ -17,8 +18,10 @@ import type {
|
|
|
17
18
|
LendOpenPositionInternalParams,
|
|
18
19
|
LendOpenPositionParams,
|
|
19
20
|
LendTransaction,
|
|
21
|
+
TransactionData,
|
|
20
22
|
} from '@/types/lend/index.js'
|
|
21
23
|
import { validateMarketAsset } from '@/utils/markets.js'
|
|
24
|
+
import { validateChainSupported } from '@/utils/validation.js'
|
|
22
25
|
|
|
23
26
|
/**
|
|
24
27
|
* Lending provider abstract class
|
|
@@ -30,6 +33,9 @@ export abstract class LendProvider<
|
|
|
30
33
|
/** Lending provider configuration */
|
|
31
34
|
protected readonly _config: TConfig
|
|
32
35
|
|
|
36
|
+
/** Chain manager for blockchain interactions */
|
|
37
|
+
protected readonly chainManager: ChainManager
|
|
38
|
+
|
|
33
39
|
/**
|
|
34
40
|
* Supported chain IDs
|
|
35
41
|
* @description Array of chain IDs that this provider supports
|
|
@@ -39,9 +45,11 @@ export abstract class LendProvider<
|
|
|
39
45
|
/**
|
|
40
46
|
* Create a new lending provider
|
|
41
47
|
* @param config - Provider-specific lending configuration
|
|
48
|
+
* @param chainManager - Chain manager for blockchain interactions
|
|
42
49
|
*/
|
|
43
|
-
protected constructor(config: TConfig) {
|
|
50
|
+
protected constructor(config: TConfig, chainManager: ChainManager) {
|
|
44
51
|
this._config = config
|
|
52
|
+
this.chainManager = chainManager
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
public get config(): TConfig {
|
|
@@ -70,7 +78,7 @@ export abstract class LendProvider<
|
|
|
70
78
|
throw new Error('walletAddress is required')
|
|
71
79
|
}
|
|
72
80
|
|
|
73
|
-
|
|
81
|
+
validateChainSupported(params.marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
74
82
|
this.validateConfigSupported(params.marketId)
|
|
75
83
|
|
|
76
84
|
// Convert human-readable amount to wei using the asset's decimals
|
|
@@ -98,7 +106,7 @@ export abstract class LendProvider<
|
|
|
98
106
|
chainId: params.chainId,
|
|
99
107
|
}
|
|
100
108
|
|
|
101
|
-
|
|
109
|
+
validateChainSupported(params.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
102
110
|
this.validateConfigSupported(marketId)
|
|
103
111
|
return this._getMarket(marketId)
|
|
104
112
|
}
|
|
@@ -110,7 +118,7 @@ export abstract class LendProvider<
|
|
|
110
118
|
*/
|
|
111
119
|
async getMarkets(params: GetLendMarketsParams = {}): Promise<LendMarket[]> {
|
|
112
120
|
if (params.chainId !== undefined)
|
|
113
|
-
|
|
121
|
+
validateChainSupported(params.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
114
122
|
|
|
115
123
|
const filteredMarkets = this.filterMarketConfigs(
|
|
116
124
|
params.chainId,
|
|
@@ -149,7 +157,7 @@ export abstract class LendProvider<
|
|
|
149
157
|
)
|
|
150
158
|
}
|
|
151
159
|
|
|
152
|
-
|
|
160
|
+
validateChainSupported(marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
153
161
|
this.validateConfigSupported(marketId)
|
|
154
162
|
|
|
155
163
|
return this._getPosition({ marketId, walletAddress })
|
|
@@ -169,7 +177,7 @@ export abstract class LendProvider<
|
|
|
169
177
|
throw new Error('walletAddress is required')
|
|
170
178
|
}
|
|
171
179
|
|
|
172
|
-
|
|
180
|
+
validateChainSupported(params.marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
173
181
|
this.validateConfigSupported(params.marketId)
|
|
174
182
|
|
|
175
183
|
const market = await this.getMarket({
|
|
@@ -210,19 +218,6 @@ export abstract class LendProvider<
|
|
|
210
218
|
return this.SUPPORTED_CHAIN_IDS.includes(chainId)
|
|
211
219
|
}
|
|
212
220
|
|
|
213
|
-
/**
|
|
214
|
-
* Validate that a chainId is supported for lending operations
|
|
215
|
-
* @param chainId - Chain ID to validate
|
|
216
|
-
* @throws Error if chain is not supported
|
|
217
|
-
*/
|
|
218
|
-
protected validateProviderSupported(chainId: number): void {
|
|
219
|
-
if (!this.isChainSupported(chainId)) {
|
|
220
|
-
throw new Error(
|
|
221
|
-
`Chain ${chainId} is not supported. Supported chains: ${this.SUPPORTED_CHAIN_IDS.join(', ')}`,
|
|
222
|
-
)
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
221
|
/**
|
|
227
222
|
* Validate that a market is in the config's market allowlist
|
|
228
223
|
* @param marketId - Market identifier containing address and chainId
|
|
@@ -268,6 +263,31 @@ export abstract class LendProvider<
|
|
|
268
263
|
return configs
|
|
269
264
|
}
|
|
270
265
|
|
|
266
|
+
/**
|
|
267
|
+
* Build an ERC20 approval transaction
|
|
268
|
+
* @param tokenAddress - Address of the token to approve
|
|
269
|
+
* @param spender - Address to approve spending for
|
|
270
|
+
* @param amount - Amount to approve
|
|
271
|
+
* @returns Transaction data for the approval
|
|
272
|
+
*/
|
|
273
|
+
protected buildApprovalTx(
|
|
274
|
+
tokenAddress: Address,
|
|
275
|
+
spender: Address,
|
|
276
|
+
amount: bigint,
|
|
277
|
+
): TransactionData {
|
|
278
|
+
const approvalCallData = encodeFunctionData({
|
|
279
|
+
abi: erc20Abi,
|
|
280
|
+
functionName: 'approve',
|
|
281
|
+
args: [spender, amount],
|
|
282
|
+
})
|
|
283
|
+
|
|
284
|
+
return {
|
|
285
|
+
to: tokenAddress,
|
|
286
|
+
data: approvalCallData,
|
|
287
|
+
value: 0n,
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
271
291
|
/**
|
|
272
292
|
* Abstract methods that must be implemented by providers
|
|
273
293
|
*/
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
2
|
import { describe, expect, it } from 'vitest'
|
|
3
3
|
|
|
4
|
-
import { MockUSDCAsset } from '@/
|
|
5
|
-
import { MockLendProvider } from '@/
|
|
4
|
+
import { MockUSDCAsset } from '@/__mocks__/MockAssets.js'
|
|
5
|
+
import { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
6
6
|
import type { LendMarketConfig, LendMarketId } from '@/types/lend/index.js'
|
|
7
|
+
import { validateChainSupported } from '@/utils/validation.js'
|
|
7
8
|
|
|
8
9
|
// Test helper class that exposes protected validation methods as public
|
|
9
10
|
class TestLendProvider extends MockLendProvider {
|
|
10
|
-
public validateProviderSupported(chainId: number): void {
|
|
11
|
-
return super.validateProviderSupported(chainId)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
11
|
public validateConfigSupported(marketId: LendMarketId): void {
|
|
15
12
|
return super.validateConfigSupported(marketId)
|
|
16
13
|
}
|
|
@@ -186,7 +183,7 @@ describe('LendProvider', () => {
|
|
|
186
183
|
const provider = new TestLendProvider()
|
|
187
184
|
|
|
188
185
|
expect(() => {
|
|
189
|
-
provider.
|
|
186
|
+
validateChainSupported(999, provider.supportedChainIds())
|
|
190
187
|
}).toThrow('Chain 999 is not supported')
|
|
191
188
|
})
|
|
192
189
|
|
|
@@ -1,90 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { AaveLendProvider } from '@/lend/providers/aave/AaveLendProvider.js'
|
|
3
|
-
import type { MorphoLendProvider } from '@/lend/providers/morpho/MorphoLendProvider.js'
|
|
4
|
-
import type { LendProviderConfig } from '@/types/actions.js'
|
|
5
|
-
import type {
|
|
6
|
-
GetLendMarketParams,
|
|
7
|
-
GetLendMarketsParams,
|
|
8
|
-
LendMarket,
|
|
9
|
-
LendMarketId,
|
|
10
|
-
} from '@/types/lend/index.js'
|
|
1
|
+
import { BaseLendNamespace } from './BaseLendNamespace.js'
|
|
11
2
|
|
|
12
3
|
/**
|
|
13
4
|
* Actions Lend Namespace
|
|
14
5
|
* @description Read-only lending operations available on actions.lend
|
|
15
6
|
*/
|
|
16
|
-
export class ActionsLendNamespace {
|
|
17
|
-
constructor(
|
|
18
|
-
protected readonly providers: {
|
|
19
|
-
morpho?: LendProvider<LendProviderConfig>
|
|
20
|
-
aave?: LendProvider<LendProviderConfig>
|
|
21
|
-
},
|
|
22
|
-
) {}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Route a market to the correct provider
|
|
26
|
-
* @param marketId - Market identifier to route
|
|
27
|
-
* @returns The provider that handles this market
|
|
28
|
-
* @throws Error if no provider is found for the market
|
|
29
|
-
*/
|
|
30
|
-
private getProviderForMarket(
|
|
31
|
-
marketId: LendMarketId,
|
|
32
|
-
): MorphoLendProvider | AaveLendProvider {
|
|
33
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(
|
|
34
|
-
Boolean,
|
|
35
|
-
) as Array<MorphoLendProvider | AaveLendProvider>
|
|
36
|
-
|
|
37
|
-
for (const provider of allProviders) {
|
|
38
|
-
const market = provider.config.marketAllowlist?.find(
|
|
39
|
-
(m: LendMarketId) =>
|
|
40
|
-
m.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
41
|
-
m.chainId === marketId.chainId,
|
|
42
|
-
)
|
|
43
|
-
if (market) return provider
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
throw new Error(
|
|
47
|
-
`No provider configured for market ${marketId.address} on chain ${marketId.chainId}`,
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Get all markets across all configured providers
|
|
53
|
-
* @param params - Optional filtering parameters
|
|
54
|
-
* @returns Promise resolving to array of markets from all providers
|
|
55
|
-
*/
|
|
56
|
-
async getMarkets(params: GetLendMarketsParams = {}): Promise<LendMarket[]> {
|
|
57
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(
|
|
58
|
-
Boolean,
|
|
59
|
-
) as Array<MorphoLendProvider | AaveLendProvider>
|
|
60
|
-
|
|
61
|
-
const results = await Promise.all(
|
|
62
|
-
allProviders.map((p) => p.getMarkets(params)),
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
return results.flat()
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Get a specific market by routing to the correct provider
|
|
70
|
-
* @param params - Market identifier
|
|
71
|
-
* @returns Promise resolving to market information
|
|
72
|
-
*/
|
|
73
|
-
async getMarket(params: GetLendMarketParams): Promise<LendMarket> {
|
|
74
|
-
const provider = this.getProviderForMarket(params)
|
|
75
|
-
return provider.getMarket(params)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Get supported chain IDs across all providers
|
|
80
|
-
* @returns Array of unique chain IDs supported by any provider
|
|
81
|
-
*/
|
|
82
|
-
supportedChainIds(): number[] {
|
|
83
|
-
const allProviders = [this.providers.morpho, this.providers.aave].filter(
|
|
84
|
-
Boolean,
|
|
85
|
-
) as Array<MorphoLendProvider | AaveLendProvider>
|
|
86
|
-
|
|
87
|
-
const allChains = allProviders.flatMap((p) => p.supportedChainIds())
|
|
88
|
-
return [...new Set(allChains)]
|
|
89
|
-
}
|
|
90
|
-
}
|
|
7
|
+
export class ActionsLendNamespace extends BaseLendNamespace {}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
2
|
+
import type { AaveLendProvider } from '@/lend/providers/aave/AaveLendProvider.js'
|
|
3
|
+
import type { MorphoLendProvider } from '@/lend/providers/morpho/MorphoLendProvider.js'
|
|
4
|
+
import type { LendProviderConfig } from '@/types/actions.js'
|
|
5
|
+
import type {
|
|
6
|
+
GetLendMarketParams,
|
|
7
|
+
GetLendMarketsParams,
|
|
8
|
+
LendMarket,
|
|
9
|
+
LendMarketId,
|
|
10
|
+
} from '@/types/lend/index.js'
|
|
11
|
+
|
|
12
|
+
export type LendProviders = {
|
|
13
|
+
morpho?: LendProvider<LendProviderConfig>
|
|
14
|
+
aave?: LendProvider<LendProviderConfig>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Base Lend Namespace
|
|
19
|
+
* @description Shared lending operations for Actions and Wallet namespaces
|
|
20
|
+
*/
|
|
21
|
+
export abstract class BaseLendNamespace {
|
|
22
|
+
constructor(protected readonly providers: LendProviders) {}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Get all markets across all configured providers
|
|
26
|
+
* @param params - Optional filtering parameters
|
|
27
|
+
* @returns Promise resolving to array of markets from all providers
|
|
28
|
+
*/
|
|
29
|
+
async getMarkets(params: GetLendMarketsParams = {}): Promise<LendMarket[]> {
|
|
30
|
+
const results = await Promise.all(
|
|
31
|
+
this.getAllProviders().map((p) => p.getMarkets(params)),
|
|
32
|
+
)
|
|
33
|
+
return results.flat()
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Get a specific market by routing to the correct provider
|
|
38
|
+
* @param params - Market identifier
|
|
39
|
+
* @returns Promise resolving to market information
|
|
40
|
+
*/
|
|
41
|
+
async getMarket(params: GetLendMarketParams): Promise<LendMarket> {
|
|
42
|
+
const provider = this.getProviderForMarket(params)
|
|
43
|
+
return provider.getMarket(params)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Get supported chain IDs across all providers
|
|
48
|
+
* @returns Array of unique chain IDs supported by any provider
|
|
49
|
+
*/
|
|
50
|
+
supportedChainIds(): number[] {
|
|
51
|
+
const allChains = this.getAllProviders().flatMap((p) =>
|
|
52
|
+
p.supportedChainIds(),
|
|
53
|
+
)
|
|
54
|
+
return [...new Set(allChains)]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get all configured providers
|
|
59
|
+
* @returns Array of configured providers
|
|
60
|
+
*/
|
|
61
|
+
protected getAllProviders(): Array<MorphoLendProvider | AaveLendProvider> {
|
|
62
|
+
return [this.providers.morpho, this.providers.aave].filter(
|
|
63
|
+
Boolean,
|
|
64
|
+
) as Array<MorphoLendProvider | AaveLendProvider>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Route a market to the correct provider
|
|
69
|
+
* @param marketId - Market identifier to route
|
|
70
|
+
* @returns The provider that handles this market
|
|
71
|
+
* @throws Error if no provider is found for the market
|
|
72
|
+
*/
|
|
73
|
+
protected getProviderForMarket(
|
|
74
|
+
marketId: LendMarketId,
|
|
75
|
+
): MorphoLendProvider | AaveLendProvider {
|
|
76
|
+
for (const provider of this.getAllProviders()) {
|
|
77
|
+
const market = provider.config.marketAllowlist?.find(
|
|
78
|
+
(m: LendMarketId) =>
|
|
79
|
+
m.address.toLowerCase() === marketId.address.toLowerCase() &&
|
|
80
|
+
m.chainId === marketId.chainId,
|
|
81
|
+
)
|
|
82
|
+
if (market) return provider
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
throw new Error(
|
|
86
|
+
`No provider configured for market ${marketId.address} on chain ${marketId.chainId}`,
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
}
|