@eth-optimism/actions-sdk 0.3.0 → 0.4.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/dist/__mocks__/MockAssets.d.ts +17 -2
- package/dist/__mocks__/MockAssets.d.ts.map +1 -1
- package/dist/__mocks__/MockAssets.js +49 -6
- package/dist/__mocks__/MockAssets.js.map +1 -1
- package/dist/__tests__/actions.test.js +1 -1
- package/dist/__tests__/actions.test.js.map +1 -1
- package/dist/actions.d.ts +8 -13
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +35 -27
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +215 -4
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +734 -11
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/providers.d.ts +6 -0
- package/dist/constants/providers.d.ts.map +1 -0
- package/dist/constants/providers.js +6 -0
- package/dist/constants/providers.js.map +1 -0
- package/dist/constants/supportedChains.d.ts +2 -2
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +12 -2
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/lend/__mocks__/MockLendProvider.d.ts +1 -1
- package/dist/lend/__mocks__/MockLendProvider.d.ts.map +1 -1
- package/dist/lend/__mocks__/MockLendProvider.js +7 -2
- package/dist/lend/__mocks__/MockLendProvider.js.map +1 -1
- package/dist/lend/core/LendProvider.d.ts +12 -8
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +15 -21
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/namespaces/BaseLendNamespace.d.ts +2 -6
- package/dist/lend/namespaces/BaseLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/BaseLendNamespace.js.map +1 -1
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js +7 -4
- package/dist/lend/namespaces/__tests__/BaseLendNamespace.spec.js.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.d.ts +1 -6
- package/dist/lend/providers/aave/AaveLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/aave/AaveLendProvider.js +3 -6
- package/dist/lend/providers/aave/AaveLendProvider.js.map +1 -1
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js +14 -6
- package/dist/lend/providers/aave/__tests__/AaveLendProvider.test.js.map +1 -1
- package/dist/lend/providers/aave/addresses.d.ts +13 -39
- package/dist/lend/providers/aave/addresses.d.ts.map +1 -1
- package/dist/lend/providers/aave/addresses.js +65 -60
- package/dist/lend/providers/aave/addresses.js.map +1 -1
- package/dist/lend/providers/aave/sdk.d.ts +2 -2
- package/dist/lend/providers/aave/sdk.d.ts.map +1 -1
- package/dist/lend/providers/aave/sdk.js +6 -28
- package/dist/lend/providers/aave/sdk.js.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts +1 -6
- package/dist/lend/providers/morpho/MorphoLendProvider.d.ts.map +1 -1
- package/dist/lend/providers/morpho/MorphoLendProvider.js +4 -13
- package/dist/lend/providers/morpho/MorphoLendProvider.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/api.test.js +52 -43
- package/dist/lend/providers/morpho/__tests__/api.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +41 -42
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/api.d.ts +3 -7
- package/dist/lend/providers/morpho/api.d.ts.map +1 -1
- package/dist/lend/providers/morpho/api.js +2 -2
- package/dist/lend/providers/morpho/api.js.map +1 -1
- package/dist/lend/providers/morpho/contracts.d.ts +11 -10
- package/dist/lend/providers/morpho/contracts.d.ts.map +1 -1
- package/dist/lend/providers/morpho/contracts.js +43 -10
- package/dist/lend/providers/morpho/contracts.js.map +1 -1
- package/dist/lend/providers/morpho/sdk.d.ts +7 -2
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +67 -63
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/nodeActionsFactory.d.ts +1 -1
- package/dist/reactActionsFactory.d.ts +1 -1
- package/dist/services/ChainManager.d.ts +8 -8
- package/dist/services/ChainManager.d.ts.map +1 -1
- package/dist/services/ChainManager.js.map +1 -1
- package/dist/services/__mocks__/MockChainManager.d.ts +4 -4
- package/dist/services/__mocks__/MockChainManager.d.ts.map +1 -1
- package/dist/services/__mocks__/MockChainManager.js.map +1 -1
- package/dist/services/tokenBalance.d.ts +1 -1
- package/dist/services/tokenBalance.d.ts.map +1 -1
- package/dist/services/tokenBalance.js +31 -30
- package/dist/services/tokenBalance.js.map +1 -1
- package/dist/services/tokenBalance.spec.js +20 -24
- package/dist/services/tokenBalance.spec.js.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.d.ts +20 -8
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.js +52 -29
- package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -1
- package/dist/swap/core/SwapProvider.d.ts +105 -16
- package/dist/swap/core/SwapProvider.d.ts.map +1 -1
- package/dist/swap/core/SwapProvider.js +218 -36
- package/dist/swap/core/SwapProvider.js.map +1 -1
- package/dist/swap/core/__tests__/SwapProvider.test.js +115 -9
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -1
- package/dist/swap/core/markets.d.ts +47 -0
- package/dist/swap/core/markets.d.ts.map +1 -0
- package/dist/swap/core/markets.js +65 -0
- package/dist/swap/core/markets.js.map +1 -0
- package/dist/swap/index.d.ts +2 -0
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +1 -0
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +2 -2
- package/dist/swap/namespaces/ActionsSwapNamespace.js +2 -2
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts +48 -8
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -1
- package/dist/swap/namespaces/BaseSwapNamespace.js +139 -16
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -1
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +19 -7
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -1
- package/dist/swap/namespaces/WalletSwapNamespace.js +39 -15
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -1
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +150 -11
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -1
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +85 -8
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +9 -42
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -1
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js +81 -139
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -1
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +10 -9
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -1
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js +17 -17
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -1
- package/dist/swap/providers/uniswap/addresses.d.ts +5 -0
- package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -1
- package/dist/swap/providers/uniswap/addresses.js +1 -1
- package/dist/swap/providers/uniswap/addresses.js.map +1 -1
- package/dist/swap/providers/uniswap/encoding.d.ts +4 -4
- package/dist/swap/providers/uniswap/encoding.js +17 -17
- package/dist/swap/providers/uniswap/markets.d.ts +19 -0
- package/dist/swap/providers/uniswap/markets.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/markets.js +48 -0
- package/dist/swap/providers/uniswap/markets.js.map +1 -0
- package/dist/swap/providers/uniswap/types.d.ts +4 -3
- package/dist/swap/providers/uniswap/types.d.ts.map +1 -1
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts +49 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.js +140 -0
- package/dist/swap/providers/velodrome/VelodromeSwapProvider.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js +255 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js +166 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js +419 -0
- package/dist/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js +51 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.cl.test.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts +14 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js +13 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.helpers.js.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts +2 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js +173 -0
- package/dist/swap/providers/velodrome/__tests__/encoding.v2.test.js.map +1 -0
- package/dist/swap/providers/velodrome/abis.d.ts +396 -0
- package/dist/swap/providers/velodrome/abis.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/abis.js +257 -0
- package/dist/swap/providers/velodrome/abis.js.map +1 -0
- package/dist/swap/providers/velodrome/addresses.d.ts +39 -0
- package/dist/swap/providers/velodrome/addresses.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/addresses.js +57 -0
- package/dist/swap/providers/velodrome/addresses.js.map +1 -0
- package/dist/swap/providers/velodrome/config.d.ts +22 -0
- package/dist/swap/providers/velodrome/config.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/config.js +29 -0
- package/dist/swap/providers/velodrome/config.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/helpers.d.ts +37 -0
- package/dist/swap/providers/velodrome/encoding/helpers.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/helpers.js +60 -0
- package/dist/swap/providers/velodrome/encoding/helpers.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/index.d.ts +8 -0
- package/dist/swap/providers/velodrome/encoding/index.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/index.js +5 -0
- package/dist/swap/providers/velodrome/encoding/index.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts +39 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.js +83 -0
- package/dist/swap/providers/velodrome/encoding/poolRouter.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts +15 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.js +33 -0
- package/dist/swap/providers/velodrome/encoding/routers/approval.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts +40 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.js +80 -0
- package/dist/swap/providers/velodrome/encoding/routers/cl.js.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts +42 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.js +166 -0
- package/dist/swap/providers/velodrome/encoding/routers/v2.js.map +1 -0
- package/dist/swap/providers/velodrome/markets.d.ts +21 -0
- package/dist/swap/providers/velodrome/markets.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/markets.js +69 -0
- package/dist/swap/providers/velodrome/markets.js.map +1 -0
- package/dist/swap/providers/velodrome/types.d.ts +31 -0
- package/dist/swap/providers/velodrome/types.d.ts.map +1 -0
- package/dist/swap/providers/velodrome/types.js +2 -0
- package/dist/swap/providers/velodrome/types.js.map +1 -0
- package/dist/types/actions.d.ts +44 -9
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/asset.d.ts +7 -9
- package/dist/types/asset.d.ts.map +1 -1
- package/dist/types/chain.d.ts +2 -2
- package/dist/types/chain.d.ts.map +1 -1
- package/dist/types/lend/base.d.ts +6 -6
- 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 +2 -1
- package/dist/types/lend/contracts.d.ts.map +1 -1
- package/dist/types/providers.d.ts +21 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +2 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/swap/base.d.ts +133 -33
- package/dist/types/swap/base.d.ts.map +1 -1
- package/dist/utils/approve.d.ts +82 -0
- package/dist/utils/approve.d.ts.map +1 -0
- package/dist/utils/{permit2.js → approve.js} +48 -14
- package/dist/utils/approve.js.map +1 -0
- package/dist/utils/approve.test.d.ts +2 -0
- package/dist/utils/approve.test.d.ts.map +1 -0
- package/dist/utils/{permit2.test.js → approve.test.js} +95 -2
- package/dist/utils/approve.test.js.map +1 -0
- package/dist/utils/assets.d.ts +6 -0
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +10 -0
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/validateAddresses.d.ts +32 -0
- package/dist/utils/validateAddresses.d.ts.map +1 -0
- package/dist/utils/validateAddresses.js +103 -0
- package/dist/utils/validateAddresses.js.map +1 -0
- package/dist/utils/validateAddresses.test.d.ts +2 -0
- package/dist/utils/validateAddresses.test.d.ts.map +1 -0
- package/dist/utils/validateAddresses.test.js +314 -0
- package/dist/utils/validateAddresses.test.js.map +1 -0
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +21 -9
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js +44 -15
- 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/hosted/abstract/HostedWalletProvider.d.ts +4 -16
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +6 -11
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +2 -9
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +6 -17
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +5 -6
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts +10 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js +2 -2
- package/dist/wallet/core/wallets/abstract/__mocks__/TestWallet.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js +12 -4
- package/dist/wallet/core/wallets/abstract/__tests__/Wallet.spec.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +3 -10
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -10
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts +2 -4
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +6 -8
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +4 -4
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +2 -9
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +3 -10
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +3 -10
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +3 -9
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +3 -2
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts +2 -4
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +11 -13
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js +6 -6
- package/dist/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +5 -10
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts +2 -6
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -10
- 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/turnkey/TurnkeyWallet.d.ts +5 -10
- 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/package.json +3 -2
- package/src/__mocks__/MockAssets.ts +54 -6
- package/src/__tests__/actions.test.ts +1 -1
- package/src/actions.ts +58 -61
- package/src/constants/assets.ts +781 -10
- package/src/constants/providers.ts +5 -0
- package/src/constants/supportedChains.ts +22 -2
- package/src/index.ts +50 -8
- package/src/lend/__mocks__/MockLendProvider.ts +8 -3
- package/src/lend/core/LendProvider.ts +27 -28
- package/src/lend/namespaces/BaseLendNamespace.ts +2 -6
- package/src/lend/namespaces/__tests__/BaseLendNamespace.spec.ts +12 -5
- package/src/lend/providers/aave/AaveLendProvider.ts +3 -7
- package/src/lend/providers/aave/__tests__/AaveLendProvider.test.ts +16 -7
- package/src/lend/providers/aave/addresses.ts +82 -64
- package/src/lend/providers/aave/sdk.ts +11 -36
- package/src/lend/providers/morpho/MorphoLendProvider.ts +4 -16
- package/src/lend/providers/morpho/__tests__/api.test.ts +65 -44
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +43 -43
- package/src/lend/providers/morpho/api.ts +7 -8
- package/src/lend/providers/morpho/contracts.ts +62 -13
- package/src/lend/providers/morpho/sdk.ts +85 -63
- package/src/services/ChainManager.ts +12 -21
- package/src/services/__mocks__/MockChainManager.ts +4 -7
- package/src/services/tokenBalance.spec.ts +20 -24
- package/src/services/tokenBalance.ts +39 -33
- package/src/swap/__mocks__/MockSwapProvider.ts +77 -42
- package/src/swap/core/SwapProvider.ts +307 -49
- package/src/swap/core/__tests__/SwapProvider.test.ts +151 -9
- package/src/swap/core/markets.ts +104 -0
- package/src/swap/index.ts +5 -0
- package/src/swap/namespaces/ActionsSwapNamespace.ts +2 -2
- package/src/swap/namespaces/BaseSwapNamespace.ts +199 -18
- package/src/swap/namespaces/WalletSwapNamespace.ts +53 -14
- package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +241 -14
- package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +103 -8
- package/src/swap/providers/uniswap/UniswapSwapProvider.ts +108 -195
- package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +12 -12
- package/src/swap/providers/uniswap/__tests__/sdk.test.ts +19 -20
- package/src/swap/providers/uniswap/addresses.ts +3 -1
- package/src/swap/providers/uniswap/encoding.ts +22 -22
- package/src/swap/providers/uniswap/markets.ts +84 -0
- package/src/swap/providers/uniswap/types.ts +4 -3
- package/src/swap/providers/velodrome/VelodromeSwapProvider.ts +224 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.network.test.ts +341 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.routing.test.ts +202 -0
- package/src/swap/providers/velodrome/__tests__/VelodromeSwapProvider.test.ts +506 -0
- package/src/swap/providers/velodrome/__tests__/encoding.cl.test.ts +69 -0
- package/src/swap/providers/velodrome/__tests__/encoding.helpers.ts +20 -0
- package/src/swap/providers/velodrome/__tests__/encoding.v2.test.ts +235 -0
- package/src/swap/providers/velodrome/abis.ts +264 -0
- package/src/swap/providers/velodrome/addresses.ts +107 -0
- package/src/swap/providers/velodrome/config.ts +46 -0
- package/src/swap/providers/velodrome/encoding/helpers.ts +82 -0
- package/src/swap/providers/velodrome/encoding/index.ts +7 -0
- package/src/swap/providers/velodrome/encoding/poolRouter.ts +124 -0
- package/src/swap/providers/velodrome/encoding/routers/approval.ts +45 -0
- package/src/swap/providers/velodrome/encoding/routers/cl.ts +156 -0
- package/src/swap/providers/velodrome/encoding/routers/v2.ts +267 -0
- package/src/swap/providers/velodrome/markets.ts +100 -0
- package/src/swap/providers/velodrome/types.ts +30 -0
- package/src/types/actions.ts +49 -9
- package/src/types/asset.ts +12 -9
- package/src/types/chain.ts +2 -2
- package/src/types/lend/base.ts +6 -6
- package/src/types/lend/contracts.ts +5 -1
- package/src/types/providers.ts +22 -0
- package/src/types/swap/base.ts +147 -34
- package/src/utils/{permit2.test.ts → approve.test.ts} +117 -1
- package/src/utils/{permit2.ts → approve.ts} +67 -14
- package/src/utils/assets.ts +14 -0
- package/src/utils/validateAddresses.test.ts +439 -0
- package/src/utils/validateAddresses.ts +153 -0
- package/src/wallet/core/namespace/WalletNamespace.ts +70 -16
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +8 -4
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +5 -17
- package/src/wallet/core/providers/hosted/types/index.ts +9 -11
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +5 -17
- package/src/wallet/core/wallets/abstract/Wallet.ts +15 -22
- package/src/wallet/core/wallets/abstract/__mocks__/TestWallet.ts +13 -1
- package/src/wallet/core/wallets/abstract/__tests__/Wallet.spec.ts +21 -5
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +5 -17
- package/src/wallet/core/wallets/smart/default/__tests__/DefaultSmartWallet.spec.ts +0 -1
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +3 -10
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +8 -8
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +4 -4
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +3 -10
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +5 -17
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +5 -17
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +7 -11
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +23 -10
- package/src/wallet/react/providers/registry/__tests__/ReactHostedWalletProviderRegistry.spec.ts +6 -6
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +10 -18
- package/src/wallet/react/wallets/hosted/dynamic/__mocks__/DynamicWalletMock.ts +2 -6
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -18
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -18
- package/dist/supported/tokens.d.ts +0 -25
- package/dist/supported/tokens.d.ts.map +0 -1
- package/dist/supported/tokens.js +0 -44
- package/dist/supported/tokens.js.map +0 -1
- package/dist/utils/permit2.d.ts +0 -46
- package/dist/utils/permit2.d.ts.map +0 -1
- package/dist/utils/permit2.js.map +0 -1
- package/dist/utils/permit2.test.d.ts +0 -2
- package/dist/utils/permit2.test.d.ts.map +0 -1
- package/dist/utils/permit2.test.js.map +0 -1
- package/src/supported/tokens.ts +0 -66
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
base,
|
|
3
3
|
baseSepolia,
|
|
4
|
+
bob,
|
|
5
|
+
celo,
|
|
6
|
+
fraxtal,
|
|
7
|
+
ink,
|
|
8
|
+
lisk,
|
|
4
9
|
mainnet,
|
|
10
|
+
metalL2,
|
|
11
|
+
mode,
|
|
5
12
|
optimism,
|
|
6
13
|
optimismSepolia,
|
|
7
14
|
sepolia,
|
|
15
|
+
soneium,
|
|
16
|
+
superseed,
|
|
17
|
+
swellchain,
|
|
8
18
|
unichain,
|
|
9
19
|
unichainSepolia,
|
|
10
20
|
worldchain,
|
|
11
21
|
} from 'viem/chains'
|
|
12
22
|
|
|
13
|
-
export const
|
|
23
|
+
export const ACTIONS_SUPPORTED_CHAIN_IDS = [
|
|
14
24
|
mainnet.id,
|
|
15
25
|
sepolia.id,
|
|
16
26
|
optimism.id,
|
|
@@ -20,6 +30,16 @@ export const SUPPORTED_CHAIN_IDS = [
|
|
|
20
30
|
unichain.id,
|
|
21
31
|
unichainSepolia.id,
|
|
22
32
|
worldchain.id,
|
|
33
|
+
bob.id,
|
|
34
|
+
celo.id,
|
|
35
|
+
fraxtal.id,
|
|
36
|
+
ink.id,
|
|
37
|
+
lisk.id,
|
|
38
|
+
metalL2.id,
|
|
39
|
+
mode.id,
|
|
40
|
+
soneium.id,
|
|
41
|
+
superseed.id,
|
|
42
|
+
swellchain.id,
|
|
23
43
|
] as const
|
|
24
44
|
|
|
25
|
-
export type SupportedChainId = (typeof
|
|
45
|
+
export type SupportedChainId = (typeof ACTIONS_SUPPORTED_CHAIN_IDS)[number]
|
package/src/index.ts
CHANGED
|
@@ -1,28 +1,66 @@
|
|
|
1
1
|
export type { Actions } from '@/actions.js'
|
|
2
2
|
export {
|
|
3
|
+
AAVE,
|
|
4
|
+
ARB,
|
|
5
|
+
BAL,
|
|
6
|
+
CBBTC,
|
|
7
|
+
CBETH,
|
|
8
|
+
COMP,
|
|
9
|
+
CRV,
|
|
10
|
+
DAI,
|
|
11
|
+
EETH,
|
|
12
|
+
ENA,
|
|
13
|
+
ENS,
|
|
3
14
|
ETH,
|
|
15
|
+
ETHFI,
|
|
16
|
+
FRAX,
|
|
17
|
+
GRT,
|
|
18
|
+
LDO,
|
|
19
|
+
LINK,
|
|
20
|
+
MKR,
|
|
4
21
|
MORPHO,
|
|
22
|
+
NATIVELY_SUPPORTED_ASSETS,
|
|
23
|
+
ONDO,
|
|
24
|
+
ONEINCH,
|
|
25
|
+
OP,
|
|
5
26
|
OP_DEMO,
|
|
27
|
+
PENDLE,
|
|
28
|
+
PEPE,
|
|
29
|
+
POL,
|
|
30
|
+
PYUSD,
|
|
31
|
+
RENDER,
|
|
32
|
+
RETH,
|
|
33
|
+
RPL,
|
|
34
|
+
SHIB,
|
|
35
|
+
SKY,
|
|
36
|
+
SNX,
|
|
37
|
+
STETH,
|
|
38
|
+
SUSHI,
|
|
39
|
+
UNI,
|
|
6
40
|
USDC,
|
|
7
41
|
USDC_DEMO,
|
|
42
|
+
USDE,
|
|
43
|
+
USDT,
|
|
44
|
+
WBTC,
|
|
45
|
+
WEETH,
|
|
8
46
|
WETH,
|
|
47
|
+
WLD,
|
|
48
|
+
WSTETH,
|
|
9
49
|
} from '@/constants/assets.js'
|
|
10
50
|
export {
|
|
11
|
-
|
|
51
|
+
ACTIONS_SUPPORTED_CHAIN_IDS,
|
|
12
52
|
type SupportedChainId,
|
|
13
53
|
} from '@/constants/supportedChains.js'
|
|
14
54
|
export * from '@/core/error/errors.js'
|
|
15
55
|
export { LendProvider, MorphoLendProvider } from '@/lend/index.js'
|
|
16
|
-
export {
|
|
17
|
-
getTokenAddress,
|
|
18
|
-
getTokenBySymbol,
|
|
19
|
-
SUPPORTED_TOKENS,
|
|
20
|
-
} from '@/supported/tokens.js'
|
|
21
56
|
export {
|
|
22
57
|
SwapProvider,
|
|
23
58
|
type UniswapMarketConfig,
|
|
24
59
|
UniswapSwapProvider,
|
|
25
60
|
type UniswapSwapProviderConfig,
|
|
61
|
+
type VelodromeMarketConfig,
|
|
62
|
+
VelodromeSwapProvider,
|
|
63
|
+
type VelodromeSwapProviderConfig,
|
|
26
64
|
} from '@/swap/index.js'
|
|
27
65
|
export type {
|
|
28
66
|
ActionsConfig,
|
|
@@ -45,11 +83,15 @@ export type {
|
|
|
45
83
|
SwapMarket,
|
|
46
84
|
SwapMarketConfig,
|
|
47
85
|
SwapMarketId,
|
|
48
|
-
SwapPrice,
|
|
49
|
-
SwapPriceParams,
|
|
50
86
|
SwapProviderConfig,
|
|
87
|
+
SwapProviderName,
|
|
88
|
+
SwapQuote,
|
|
89
|
+
SwapQuoteExecution,
|
|
90
|
+
SwapQuoteParams,
|
|
51
91
|
SwapReceipt,
|
|
52
92
|
SwapRoute,
|
|
93
|
+
SwapRoutingStrategy,
|
|
94
|
+
SwapSettings,
|
|
53
95
|
SwapTransaction,
|
|
54
96
|
TokenBalance,
|
|
55
97
|
TransactionData,
|
|
@@ -59,8 +59,6 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
59
59
|
) => Promise<LendTransaction>
|
|
60
60
|
>
|
|
61
61
|
|
|
62
|
-
protected readonly SUPPORTED_CHAIN_IDS = [1, 130, 8453, 84532] as const
|
|
63
|
-
|
|
64
62
|
protected readonly SUPPORTED_CHAINS = {
|
|
65
63
|
TESTNET: {
|
|
66
64
|
chainId: 84532,
|
|
@@ -70,6 +68,10 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
70
68
|
|
|
71
69
|
private mockConfig: MockLendProviderConfig
|
|
72
70
|
|
|
71
|
+
protocolSupportedChainIds(): number[] {
|
|
72
|
+
return [1, 130, 8453, 84532]
|
|
73
|
+
}
|
|
74
|
+
|
|
73
75
|
constructor(
|
|
74
76
|
config?: LendProviderConfig,
|
|
75
77
|
mockConfig?: Partial<MockLendProviderConfig>,
|
|
@@ -77,7 +79,10 @@ export class MockLendProvider extends LendProvider<LendProviderConfig> {
|
|
|
77
79
|
) {
|
|
78
80
|
super(
|
|
79
81
|
config || {},
|
|
80
|
-
chainManager ||
|
|
82
|
+
chainManager ||
|
|
83
|
+
(new MockChainManager({
|
|
84
|
+
supportedChains: [84532],
|
|
85
|
+
}) as unknown as ChainManager),
|
|
81
86
|
)
|
|
82
87
|
|
|
83
88
|
this.mockConfig = {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
|
-
import {
|
|
2
|
+
import { parseUnits } from 'viem'
|
|
3
3
|
|
|
4
4
|
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
5
|
+
import { ACTIONS_SUPPORTED_CHAIN_IDS } from '@/constants/supportedChains.js'
|
|
5
6
|
import type { ChainManager } from '@/services/ChainManager.js'
|
|
6
7
|
import type { LendProviderConfig } from '@/types/actions.js'
|
|
7
8
|
import type { Asset } from '@/types/asset.js'
|
|
@@ -20,6 +21,7 @@ import type {
|
|
|
20
21
|
LendTransaction,
|
|
21
22
|
TransactionData,
|
|
22
23
|
} from '@/types/lend/index.js'
|
|
24
|
+
import { buildErc20ApprovalTx } from '@/utils/approve.js'
|
|
23
25
|
import { validateMarketAsset } from '@/utils/markets.js'
|
|
24
26
|
import { validateChainSupported } from '@/utils/validation.js'
|
|
25
27
|
|
|
@@ -36,12 +38,6 @@ export abstract class LendProvider<
|
|
|
36
38
|
/** Chain manager for blockchain interactions */
|
|
37
39
|
protected readonly chainManager: ChainManager
|
|
38
40
|
|
|
39
|
-
/**
|
|
40
|
-
* Supported chain IDs
|
|
41
|
-
* @description Array of chain IDs that this provider supports
|
|
42
|
-
*/
|
|
43
|
-
protected abstract readonly SUPPORTED_CHAIN_IDS: readonly number[]
|
|
44
|
-
|
|
45
41
|
/**
|
|
46
42
|
* Create a new lending provider
|
|
47
43
|
* @param config - Provider-specific lending configuration
|
|
@@ -57,12 +53,27 @@ export abstract class LendProvider<
|
|
|
57
53
|
}
|
|
58
54
|
|
|
59
55
|
/**
|
|
60
|
-
*
|
|
61
|
-
* @description
|
|
62
|
-
*
|
|
56
|
+
* Chain IDs supported by the underlying protocol.
|
|
57
|
+
* @description Each provider implements this to declare the chains its protocol
|
|
58
|
+
* is deployed on, without any SDK-level or developer-config filtering.
|
|
59
|
+
* @returns Array of chain IDs the protocol natively supports
|
|
60
|
+
*/
|
|
61
|
+
abstract protocolSupportedChainIds(): number[]
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Effective supported chain IDs.
|
|
65
|
+
* @description Intersection of the protocol's supported chains,
|
|
66
|
+
* the Actions SDK's known chains, and the developer's ActionsConfig.chains.
|
|
67
|
+
* All validation in public methods uses this set.
|
|
68
|
+
* @returns Array of chain IDs usable through this provider instance
|
|
63
69
|
*/
|
|
64
70
|
supportedChainIds(): number[] {
|
|
65
|
-
|
|
71
|
+
const configuredChains = this.chainManager.getSupportedChains()
|
|
72
|
+
return this.protocolSupportedChainIds().filter(
|
|
73
|
+
(id) =>
|
|
74
|
+
(ACTIONS_SUPPORTED_CHAIN_IDS as readonly number[]).includes(id) &&
|
|
75
|
+
(configuredChains as number[]).includes(id),
|
|
76
|
+
)
|
|
66
77
|
}
|
|
67
78
|
|
|
68
79
|
/**
|
|
@@ -78,7 +89,6 @@ export abstract class LendProvider<
|
|
|
78
89
|
throw new Error('walletAddress is required')
|
|
79
90
|
}
|
|
80
91
|
|
|
81
|
-
validateChainSupported(params.marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
82
92
|
this.validateConfigSupported(params.marketId)
|
|
83
93
|
|
|
84
94
|
// Convert human-readable amount to wei using the asset's decimals
|
|
@@ -106,7 +116,6 @@ export abstract class LendProvider<
|
|
|
106
116
|
chainId: params.chainId,
|
|
107
117
|
}
|
|
108
118
|
|
|
109
|
-
validateChainSupported(params.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
110
119
|
this.validateConfigSupported(marketId)
|
|
111
120
|
return this._getMarket(marketId)
|
|
112
121
|
}
|
|
@@ -118,7 +127,7 @@ export abstract class LendProvider<
|
|
|
118
127
|
*/
|
|
119
128
|
async getMarkets(params: GetLendMarketsParams = {}): Promise<LendMarket[]> {
|
|
120
129
|
if (params.chainId !== undefined)
|
|
121
|
-
validateChainSupported(params.chainId, this.
|
|
130
|
+
validateChainSupported(params.chainId, this.supportedChainIds())
|
|
122
131
|
|
|
123
132
|
const filteredMarkets = this.filterMarketConfigs(
|
|
124
133
|
params.chainId,
|
|
@@ -157,7 +166,6 @@ export abstract class LendProvider<
|
|
|
157
166
|
)
|
|
158
167
|
}
|
|
159
168
|
|
|
160
|
-
validateChainSupported(marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
161
169
|
this.validateConfigSupported(marketId)
|
|
162
170
|
|
|
163
171
|
return this._getPosition({ marketId, walletAddress })
|
|
@@ -177,7 +185,6 @@ export abstract class LendProvider<
|
|
|
177
185
|
throw new Error('walletAddress is required')
|
|
178
186
|
}
|
|
179
187
|
|
|
180
|
-
validateChainSupported(params.marketId.chainId, this.SUPPORTED_CHAIN_IDS)
|
|
181
188
|
this.validateConfigSupported(params.marketId)
|
|
182
189
|
|
|
183
190
|
const market = await this.getMarket({
|
|
@@ -215,7 +222,7 @@ export abstract class LendProvider<
|
|
|
215
222
|
* @returns true if chain is supported, false otherwise
|
|
216
223
|
*/
|
|
217
224
|
protected isChainSupported(chainId: number): boolean {
|
|
218
|
-
return this.
|
|
225
|
+
return this.supportedChainIds().includes(chainId)
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
/**
|
|
@@ -224,6 +231,8 @@ export abstract class LendProvider<
|
|
|
224
231
|
* @throws Error if market allowlist is configured but market is not in it
|
|
225
232
|
*/
|
|
226
233
|
protected validateConfigSupported(marketId: LendMarketId): void {
|
|
234
|
+
validateChainSupported(marketId.chainId, this.supportedChainIds())
|
|
235
|
+
|
|
227
236
|
if (
|
|
228
237
|
!this._config.marketAllowlist ||
|
|
229
238
|
this._config.marketAllowlist.length === 0
|
|
@@ -275,17 +284,7 @@ export abstract class LendProvider<
|
|
|
275
284
|
spender: Address,
|
|
276
285
|
amount: bigint,
|
|
277
286
|
): TransactionData {
|
|
278
|
-
|
|
279
|
-
abi: erc20Abi,
|
|
280
|
-
functionName: 'approve',
|
|
281
|
-
args: [spender, amount],
|
|
282
|
-
})
|
|
283
|
-
|
|
284
|
-
return {
|
|
285
|
-
to: tokenAddress,
|
|
286
|
-
data: approvalCallData,
|
|
287
|
-
value: 0n,
|
|
288
|
-
}
|
|
287
|
+
return buildErc20ApprovalTx(tokenAddress, spender, amount)
|
|
289
288
|
}
|
|
290
289
|
|
|
291
290
|
/**
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import type { LendProvider } from '@/lend/core/LendProvider.js'
|
|
2
1
|
import type { AaveLendProvider } from '@/lend/providers/aave/AaveLendProvider.js'
|
|
3
2
|
import type { MorphoLendProvider } from '@/lend/providers/morpho/MorphoLendProvider.js'
|
|
4
|
-
import type { LendProviderConfig } from '@/types/actions.js'
|
|
5
3
|
import type {
|
|
6
4
|
GetLendMarketParams,
|
|
7
5
|
GetLendMarketsParams,
|
|
8
6
|
LendMarket,
|
|
9
7
|
LendMarketId,
|
|
10
8
|
} from '@/types/lend/index.js'
|
|
9
|
+
import type { LendProviders } from '@/types/providers.js'
|
|
11
10
|
|
|
12
|
-
export type LendProviders
|
|
13
|
-
morpho?: LendProvider<LendProviderConfig>
|
|
14
|
-
aave?: LendProvider<LendProviderConfig>
|
|
15
|
-
}
|
|
11
|
+
export type { LendProviders } from '@/types/providers.js'
|
|
16
12
|
|
|
17
13
|
/**
|
|
18
14
|
* Base Lend Namespace
|
|
@@ -3,8 +3,13 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
|
3
3
|
|
|
4
4
|
import { getRandomAddress } from '@/__mocks__/utils.js'
|
|
5
5
|
import type { MockLendProvider } from '@/lend/__mocks__/MockLendProvider.js'
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
createMockLendProvider,
|
|
8
|
+
MockLendProvider as MockLendProviderClass,
|
|
9
|
+
} from '@/lend/__mocks__/MockLendProvider.js'
|
|
7
10
|
import { BaseLendNamespace } from '@/lend/namespaces/BaseLendNamespace.js'
|
|
11
|
+
import { MockChainManager } from '@/services/__mocks__/MockChainManager.js'
|
|
12
|
+
import type { ChainManager } from '@/services/ChainManager.js'
|
|
8
13
|
|
|
9
14
|
// Concrete implementation for testing
|
|
10
15
|
class TestLendNamespace extends BaseLendNamespace {}
|
|
@@ -109,10 +114,12 @@ describe('BaseLendNamespace', () => {
|
|
|
109
114
|
|
|
110
115
|
describe('supportedChainIds', () => {
|
|
111
116
|
it('should return unique chain IDs from all providers', () => {
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
})
|
|
117
|
+
const chainManager = new MockChainManager({
|
|
118
|
+
supportedChains: [1, 130, 8453, 84532],
|
|
119
|
+
}) as unknown as ChainManager
|
|
120
|
+
const morpho = new MockLendProviderClass({}, undefined, chainManager)
|
|
121
|
+
const aave = new MockLendProviderClass({}, undefined, chainManager)
|
|
122
|
+
const namespace = new TestLendNamespace({ morpho, aave })
|
|
116
123
|
|
|
117
124
|
const chainIds = namespace.supportedChainIds()
|
|
118
125
|
|
|
@@ -25,18 +25,14 @@ import {
|
|
|
25
25
|
} from './addresses.js'
|
|
26
26
|
import { getATokenAddress, getReserve, getReserves } from './sdk.js'
|
|
27
27
|
|
|
28
|
-
/**
|
|
29
|
-
* Supported chain IDs for Aave lending
|
|
30
|
-
* @description Array of chain IDs where Aave V3 is available on Optimism Superchain
|
|
31
|
-
*/
|
|
32
|
-
export const SUPPORTED_CHAIN_IDS = getSupportedChainIds() as readonly number[]
|
|
33
|
-
|
|
34
28
|
/**
|
|
35
29
|
* Aave lending provider implementation
|
|
36
30
|
* @description Lending provider implementation using Aave V3 protocol
|
|
37
31
|
*/
|
|
38
32
|
export class AaveLendProvider extends LendProvider<LendProviderConfig> {
|
|
39
|
-
|
|
33
|
+
protocolSupportedChainIds(): number[] {
|
|
34
|
+
return getSupportedChainIds()
|
|
35
|
+
}
|
|
40
36
|
|
|
41
37
|
/**
|
|
42
38
|
* Create a new Aave lending provider
|
|
@@ -88,22 +88,31 @@ describe('AaveLendProvider', () => {
|
|
|
88
88
|
})
|
|
89
89
|
})
|
|
90
90
|
|
|
91
|
-
describe('
|
|
92
|
-
it('should return
|
|
93
|
-
const chainIds = provider.
|
|
91
|
+
describe('protocolSupportedChainIds', () => {
|
|
92
|
+
it('should return all Aave V3 deployment chains', () => {
|
|
93
|
+
const chainIds = provider.protocolSupportedChainIds()
|
|
94
94
|
|
|
95
|
-
expect(chainIds).toHaveLength(
|
|
95
|
+
expect(chainIds).toHaveLength(6)
|
|
96
96
|
expect(chainIds).toContain(10) // Optimism
|
|
97
97
|
expect(chainIds).toContain(8453) // Base
|
|
98
|
+
expect(chainIds).toContain(1868) // Soneium
|
|
99
|
+
expect(chainIds).toContain(57073) // Ink
|
|
98
100
|
expect(chainIds).toContain(11155420) // Optimism Sepolia
|
|
99
101
|
expect(chainIds).toContain(84532) // Base Sepolia
|
|
100
102
|
})
|
|
103
|
+
})
|
|
101
104
|
|
|
102
|
-
|
|
105
|
+
describe('supportedChainIds', () => {
|
|
106
|
+
it('should return only chains present in ActionsConfig', () => {
|
|
107
|
+
// mockChainManager is configured with supportedChains: [8453]
|
|
103
108
|
const chainIds = provider.supportedChainIds()
|
|
104
|
-
const uniqueIds = [...new Set(chainIds)]
|
|
105
109
|
|
|
106
|
-
expect(chainIds
|
|
110
|
+
expect(chainIds).toEqual([8453])
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it('should return unique chain IDs', () => {
|
|
114
|
+
const chainIds = provider.supportedChainIds()
|
|
115
|
+
expect(chainIds.length).toBe(new Set(chainIds).size)
|
|
107
116
|
})
|
|
108
117
|
})
|
|
109
118
|
|
|
@@ -1,95 +1,113 @@
|
|
|
1
1
|
import type { Address } from 'viem'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
base,
|
|
4
|
+
baseSepolia,
|
|
5
|
+
ink,
|
|
6
|
+
optimism,
|
|
7
|
+
optimismSepolia,
|
|
8
|
+
soneium,
|
|
9
|
+
} from 'viem/chains'
|
|
3
10
|
|
|
4
|
-
|
|
5
|
-
* Aave V3 Pool addresses for Optimism Superchain networks
|
|
6
|
-
* @description Hardcoded Pool contract addresses for each supported chain
|
|
7
|
-
*/
|
|
11
|
+
import type { SupportedChainId } from '@/constants/supportedChains.js'
|
|
8
12
|
|
|
9
13
|
/**
|
|
10
|
-
*
|
|
14
|
+
* Aave V3 contract addresses per chain
|
|
11
15
|
*/
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
export interface AaveAddresses {
|
|
17
|
+
pool: Address
|
|
18
|
+
wethGateway: Address
|
|
19
|
+
uiPoolDataProvider: Address
|
|
20
|
+
poolAddressesProvider: Address
|
|
21
|
+
}
|
|
16
22
|
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
24
|
+
* Aave V3 contract addresses for OP Stack chains
|
|
25
|
+
* @see https://github.com/bgd-labs/aave-address-book
|
|
19
26
|
*/
|
|
20
|
-
|
|
21
|
-
[
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
const AAVE_ADDRESSES: Partial<Record<SupportedChainId, AaveAddresses>> = {
|
|
28
|
+
[optimism.id]: {
|
|
29
|
+
pool: '0x794a61358D6845594F94dc1DB02A252b5b4814aD',
|
|
30
|
+
wethGateway: '0x5f2508cAE9923b02316254026CD43d7902866725',
|
|
31
|
+
uiPoolDataProvider: '0x69FA688f1Dc47d4B5d8029D5a35FB7a548310654',
|
|
32
|
+
poolAddressesProvider: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
|
|
33
|
+
},
|
|
34
|
+
[base.id]: {
|
|
35
|
+
pool: '0xA238Dd80C259a72e81d7e4664a9801593F98d1c5',
|
|
36
|
+
wethGateway: '0xa0d9C1E9E48Ca30c8d8C3B5D69FF5dc1f6DFfC24',
|
|
37
|
+
uiPoolDataProvider: '0xd82a47fdebB5bf5329b09441C3DaB4b5df2153Ad',
|
|
38
|
+
poolAddressesProvider: '0xe20fCBdBfFC4Dd138cE8b2E6FBb6CB49777ad64D',
|
|
39
|
+
},
|
|
40
|
+
[soneium.id]: {
|
|
41
|
+
pool: '0xDd3d7A7d03D9fD9ef45f3E587287922eF65CA38B',
|
|
42
|
+
wethGateway: '0x6376D4df995f32f308f2d5049a7a320943023232',
|
|
43
|
+
uiPoolDataProvider: '0xc69299Ddd3a704F6954c8Ae1AD00e0892d77Aee4',
|
|
44
|
+
poolAddressesProvider: '0x82405D1a189bd6cE4667809C35B37fBE136A4c5B',
|
|
45
|
+
},
|
|
46
|
+
[ink.id]: {
|
|
47
|
+
pool: '0x2816cf15F6d2A220E789aA011D5EE4eB6c47FEbA',
|
|
48
|
+
wethGateway: '0xDe090EfCD6ef4b86792e2D84E55a5fa8d49D25D2',
|
|
49
|
+
uiPoolDataProvider: '0xF1485fb7DBFa5db0B368FeA808FD6ff945c36064',
|
|
50
|
+
poolAddressesProvider: '0x4172E6aAEC070ACB31aaCE343A58c93E4C70f44D',
|
|
51
|
+
},
|
|
52
|
+
[optimismSepolia.id]: {
|
|
53
|
+
pool: '0xb50201558b00496a145fe76f7424749556e326d8',
|
|
54
|
+
wethGateway: '0x589750BA8aF186cE5B55391B0b7148cAD43a1619',
|
|
55
|
+
uiPoolDataProvider: '0x86E2938daE289763D4e09a7e42c5cCcA62Cf9809',
|
|
56
|
+
poolAddressesProvider: '0x36616cf17557639614c1cdDb356b1B83fc0B2132',
|
|
57
|
+
},
|
|
58
|
+
[baseSepolia.id]: {
|
|
59
|
+
pool: '0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27',
|
|
60
|
+
wethGateway: '0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6',
|
|
61
|
+
uiPoolDataProvider: '0xBc9f5b7E248451CdD7cA54e717a2BFe1F32b566b',
|
|
62
|
+
poolAddressesProvider: '0xE4C23309117Aa30342BFaae6c95c6478e0A4Ad00',
|
|
63
|
+
},
|
|
64
|
+
}
|
|
24
65
|
|
|
25
66
|
/**
|
|
26
|
-
*
|
|
67
|
+
* Get all Aave addresses for a chain
|
|
27
68
|
*/
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
} as const
|
|
69
|
+
export function getAaveAddresses(chainId: number): AaveAddresses | undefined {
|
|
70
|
+
return AAVE_ADDRESSES[chainId as SupportedChainId]
|
|
71
|
+
}
|
|
32
72
|
|
|
33
73
|
/**
|
|
34
74
|
* Get Pool address for a given chain ID
|
|
35
|
-
* @param chainId - Chain ID
|
|
36
|
-
* @returns Pool address if supported, undefined otherwise
|
|
37
75
|
*/
|
|
38
76
|
export function getPoolAddress(chainId: number): Address | undefined {
|
|
39
|
-
return
|
|
77
|
+
return getAaveAddresses(chainId)?.pool
|
|
40
78
|
}
|
|
41
79
|
|
|
42
80
|
/**
|
|
43
|
-
*
|
|
44
|
-
* @param chainId - Chain ID to check
|
|
45
|
-
* @returns true if Aave V3 is deployed on this chain
|
|
81
|
+
* Get WETHGateway address for a given chain ID
|
|
46
82
|
*/
|
|
47
|
-
export function
|
|
48
|
-
return chainId
|
|
83
|
+
export function getWETHGatewayAddress(chainId: number): Address | undefined {
|
|
84
|
+
return getAaveAddresses(chainId)?.wethGateway
|
|
49
85
|
}
|
|
50
86
|
|
|
51
87
|
/**
|
|
52
88
|
* Get all supported chain IDs
|
|
53
|
-
* @returns Array of chain IDs with Aave V3 deployed
|
|
54
89
|
*/
|
|
55
90
|
export function getSupportedChainIds(): number[] {
|
|
56
|
-
return Object.keys(
|
|
91
|
+
return Object.keys(AAVE_ADDRESSES).map(Number)
|
|
57
92
|
}
|
|
58
93
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
94
|
+
export const POOL_ADDRESSES_MAINNET: Record<number, Address> = {
|
|
95
|
+
[optimism.id]: AAVE_ADDRESSES[optimism.id]!.pool,
|
|
96
|
+
[base.id]: AAVE_ADDRESSES[base.id]!.pool,
|
|
97
|
+
[soneium.id]: AAVE_ADDRESSES[soneium.id]!.pool,
|
|
98
|
+
[ink.id]: AAVE_ADDRESSES[ink.id]!.pool,
|
|
99
|
+
}
|
|
100
|
+
export const POOL_ADDRESSES_TESTNET: Record<number, Address> = {
|
|
101
|
+
[optimismSepolia.id]: AAVE_ADDRESSES[optimismSepolia.id]!.pool,
|
|
102
|
+
[baseSepolia.id]: AAVE_ADDRESSES[baseSepolia.id]!.pool,
|
|
103
|
+
}
|
|
67
104
|
export const WETH_GATEWAY_ADDRESSES_MAINNET: Record<number, Address> = {
|
|
68
|
-
[optimism.id]:
|
|
69
|
-
[base.id]:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* Testnet WETHGateway addresses
|
|
74
|
-
*/
|
|
105
|
+
[optimism.id]: AAVE_ADDRESSES[optimism.id]!.wethGateway,
|
|
106
|
+
[base.id]: AAVE_ADDRESSES[base.id]!.wethGateway,
|
|
107
|
+
[soneium.id]: AAVE_ADDRESSES[soneium.id]!.wethGateway,
|
|
108
|
+
[ink.id]: AAVE_ADDRESSES[ink.id]!.wethGateway,
|
|
109
|
+
}
|
|
75
110
|
export const WETH_GATEWAY_ADDRESSES_TESTNET: Record<number, Address> = {
|
|
76
|
-
[optimismSepolia.id]:
|
|
77
|
-
[baseSepolia.id]:
|
|
78
|
-
} as const
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* All WETHGateway addresses (mainnet + testnet)
|
|
82
|
-
*/
|
|
83
|
-
export const WETH_GATEWAY_ADDRESSES: Record<number, Address> = {
|
|
84
|
-
...WETH_GATEWAY_ADDRESSES_MAINNET,
|
|
85
|
-
...WETH_GATEWAY_ADDRESSES_TESTNET,
|
|
86
|
-
} as const
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get WETHGateway address for a given chain ID
|
|
90
|
-
* @param chainId - Chain ID
|
|
91
|
-
* @returns WETHGateway address if supported, undefined otherwise
|
|
92
|
-
*/
|
|
93
|
-
export function getWETHGatewayAddress(chainId: number): Address | undefined {
|
|
94
|
-
return WETH_GATEWAY_ADDRESSES[chainId]
|
|
111
|
+
[optimismSepolia.id]: AAVE_ADDRESSES[optimismSepolia.id]!.wethGateway,
|
|
112
|
+
[baseSepolia.id]: AAVE_ADDRESSES[baseSepolia.id]!.wethGateway,
|
|
95
113
|
}
|