@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,32 +1,60 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { formatUnits } from 'viem';
|
|
2
|
+
import { UNISWAP } from '../../../constants/providers.js';
|
|
3
|
+
import { expandMarkets, findMarket } from '../../core/markets.js';
|
|
2
4
|
import { SwapProvider } from '../../core/SwapProvider.js';
|
|
3
|
-
import { POOL_KEY_ABI_TYPE } from './abis.js';
|
|
4
5
|
import { getSupportedChainIds, getUniswapAddresses, } from './addresses.js';
|
|
5
6
|
import { encodeUniversalRouterSwap, getQuote, } from './encoding.js';
|
|
7
|
+
import { configToMarkets, getValidMarketConfigs, } from './markets.js';
|
|
6
8
|
import { isNativeAsset, parseAssetAmount } from '../../../utils/assets.js';
|
|
7
9
|
/**
|
|
8
10
|
* Uniswap V4 swap provider using Universal Router and Permit2 approvals.
|
|
9
11
|
*/
|
|
10
12
|
export class UniswapSwapProvider extends SwapProvider {
|
|
11
|
-
|
|
12
|
-
supportedChainIds() {
|
|
13
|
+
protocolSupportedChainIds() {
|
|
13
14
|
return getSupportedChainIds();
|
|
14
15
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Build a swap transaction with quote, calldata, and any required approvals.
|
|
17
|
-
* @param params - Resolved swap parameters (amounts in wei, defaults applied)
|
|
18
|
-
* @returns Transaction data ready for wallet execution
|
|
19
|
-
*/
|
|
20
16
|
async _execute(params) {
|
|
17
|
+
const swapQuote = await this._getQuote({
|
|
18
|
+
assetIn: params.assetIn,
|
|
19
|
+
assetOut: params.assetOut,
|
|
20
|
+
amountIn: params.amountInRaw
|
|
21
|
+
? parseFloat(formatUnits(params.amountInRaw, params.assetIn.metadata.decimals))
|
|
22
|
+
: undefined,
|
|
23
|
+
amountOut: params.amountOutRaw
|
|
24
|
+
? parseFloat(formatUnits(params.amountOutRaw, params.assetOut.metadata.decimals))
|
|
25
|
+
: undefined,
|
|
26
|
+
chainId: params.chainId,
|
|
27
|
+
slippage: params.slippage,
|
|
28
|
+
deadline: params.deadline,
|
|
29
|
+
recipient: params.recipient,
|
|
30
|
+
});
|
|
31
|
+
return this.buildSwapTransactions(swapQuote);
|
|
32
|
+
}
|
|
33
|
+
async _buildApprovals(quote) {
|
|
34
|
+
const addresses = getUniswapAddresses(quote.chainId);
|
|
35
|
+
return this.buildPermit2Approvals({
|
|
36
|
+
assetIn: quote.assetIn,
|
|
37
|
+
assetOut: quote.assetOut,
|
|
38
|
+
slippage: quote.slippage,
|
|
39
|
+
deadline: quote.deadline,
|
|
40
|
+
recipient: quote.recipient,
|
|
41
|
+
walletAddress: quote.recipient,
|
|
42
|
+
chainId: quote.chainId,
|
|
43
|
+
amountInRaw: quote.amountInRaw,
|
|
44
|
+
}, quote.amountInRaw, addresses.permit2, addresses.universalRouter);
|
|
45
|
+
}
|
|
46
|
+
async _getQuote(params) {
|
|
21
47
|
const { chainId, assetIn, assetOut } = params;
|
|
22
48
|
const addresses = getUniswapAddresses(chainId);
|
|
23
49
|
const publicClient = this.chainManager.getPublicClient(chainId);
|
|
24
50
|
const marketConfig = this.resolveUniswapConfig(assetIn, assetOut, chainId);
|
|
51
|
+
const { slippage, now, deadline, recipient, amountInRaw } = this.resolveQuoteDefaults(params);
|
|
52
|
+
const amountOutRaw = parseAssetAmount(assetOut, params.amountOut);
|
|
25
53
|
const quote = await getQuote({
|
|
26
54
|
assetIn,
|
|
27
55
|
assetOut,
|
|
28
|
-
|
|
29
|
-
|
|
56
|
+
amountInRaw: amountOutRaw ? undefined : amountInRaw,
|
|
57
|
+
amountOutRaw,
|
|
30
58
|
chainId,
|
|
31
59
|
publicClient,
|
|
32
60
|
quoterAddress: addresses.quoter,
|
|
@@ -35,67 +63,54 @@ export class UniswapSwapProvider extends SwapProvider {
|
|
|
35
63
|
tickSpacing: marketConfig.tickSpacing,
|
|
36
64
|
});
|
|
37
65
|
const swapCalldata = encodeUniversalRouterSwap({
|
|
38
|
-
|
|
39
|
-
|
|
66
|
+
amountInRaw: amountOutRaw ? undefined : amountInRaw,
|
|
67
|
+
amountOutRaw,
|
|
40
68
|
assetIn,
|
|
41
69
|
assetOut,
|
|
42
|
-
slippage
|
|
43
|
-
deadline
|
|
44
|
-
recipient
|
|
70
|
+
slippage,
|
|
71
|
+
deadline,
|
|
72
|
+
recipient,
|
|
45
73
|
chainId,
|
|
46
74
|
quote,
|
|
47
75
|
universalRouterAddress: addresses.universalRouter,
|
|
48
76
|
fee: marketConfig.fee,
|
|
49
77
|
tickSpacing: marketConfig.tickSpacing,
|
|
50
78
|
});
|
|
51
|
-
const
|
|
52
|
-
const {
|
|
53
|
-
const swapTx = {
|
|
54
|
-
to: addresses.universalRouter,
|
|
55
|
-
data: swapCalldata,
|
|
56
|
-
value: isNativeAsset(assetIn) ? (params.amountInWei ?? 0n) : 0n,
|
|
57
|
-
};
|
|
79
|
+
const finalAmountInRaw = amountOutRaw ? quote.amountInRaw : amountInRaw;
|
|
80
|
+
const { amountOutMinRaw, amountOutMin } = this.computeSlippageBounds(quote.amountOutRaw, slippage, assetOut);
|
|
58
81
|
return {
|
|
59
|
-
amountIn: parseFloat(formatUnits(amountInWei, assetIn.metadata.decimals)),
|
|
60
|
-
amountOut: parseFloat(formatUnits(quote.amountOutWei, assetOut.metadata.decimals)),
|
|
61
|
-
amountInWei,
|
|
62
|
-
amountOutWei: quote.amountOutWei,
|
|
63
82
|
assetIn,
|
|
64
83
|
assetOut,
|
|
65
|
-
|
|
84
|
+
chainId,
|
|
85
|
+
amountIn: quote.amountIn,
|
|
86
|
+
amountInRaw: finalAmountInRaw,
|
|
87
|
+
amountOut: quote.amountOut,
|
|
88
|
+
amountOutRaw: quote.amountOutRaw,
|
|
89
|
+
amountOutMin,
|
|
90
|
+
amountOutMinRaw,
|
|
91
|
+
price: quote.amountOut / quote.amountIn,
|
|
92
|
+
priceInverse: quote.amountIn / quote.amountOut,
|
|
66
93
|
priceImpact: quote.priceImpact,
|
|
67
|
-
|
|
94
|
+
route: quote.route,
|
|
95
|
+
execution: {
|
|
96
|
+
swapCalldata,
|
|
97
|
+
routerAddress: addresses.universalRouter,
|
|
98
|
+
value: isNativeAsset(assetIn) ? (amountInRaw ?? 0n) : 0n,
|
|
99
|
+
providerContext: {
|
|
100
|
+
fee: marketConfig.fee,
|
|
101
|
+
tickSpacing: marketConfig.tickSpacing,
|
|
102
|
+
permit2Address: addresses.permit2,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
provider: UNISWAP,
|
|
106
|
+
slippage,
|
|
107
|
+
deadline,
|
|
108
|
+
quotedAt: now,
|
|
109
|
+
expiresAt: deadline,
|
|
110
|
+
gasEstimate: quote.gasEstimate,
|
|
111
|
+
quotedRecipient: recipient,
|
|
68
112
|
};
|
|
69
113
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Get a price quote for a swap pair.
|
|
72
|
-
* @param params - Price query with assets, optional amounts, and chain
|
|
73
|
-
* @returns Quote with price, amounts, price impact, and route
|
|
74
|
-
*/
|
|
75
|
-
async _getPrice(params) {
|
|
76
|
-
const { chainId, assetIn, assetOut } = params;
|
|
77
|
-
const addresses = getUniswapAddresses(chainId);
|
|
78
|
-
const publicClient = this.chainManager.getPublicClient(chainId);
|
|
79
|
-
if (!assetOut) {
|
|
80
|
-
throw new Error('assetOut is required');
|
|
81
|
-
}
|
|
82
|
-
const marketConfig = this.resolveUniswapConfig(assetIn, assetOut, chainId);
|
|
83
|
-
// Default to 1 unit for price quotes when no amount specified
|
|
84
|
-
const amountInWei = parseAssetAmount(assetIn, params.amountIn ?? 1);
|
|
85
|
-
const amountOutWei = parseAssetAmount(assetOut, params.amountOut);
|
|
86
|
-
return getQuote({
|
|
87
|
-
assetIn,
|
|
88
|
-
assetOut,
|
|
89
|
-
amountInWei: amountOutWei ? undefined : amountInWei,
|
|
90
|
-
amountOutWei,
|
|
91
|
-
chainId,
|
|
92
|
-
publicClient,
|
|
93
|
-
quoterAddress: addresses.quoter,
|
|
94
|
-
poolManagerAddress: addresses.poolManager,
|
|
95
|
-
fee: marketConfig.fee,
|
|
96
|
-
tickSpacing: marketConfig.tickSpacing,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
114
|
/**
|
|
100
115
|
* Find a specific market by poolId from the allowlist.
|
|
101
116
|
* @param params - Pool ID and chain to look up
|
|
@@ -103,41 +118,23 @@ export class UniswapSwapProvider extends SwapProvider {
|
|
|
103
118
|
* @throws If no matching market found in config
|
|
104
119
|
*/
|
|
105
120
|
async _getMarket(params) {
|
|
106
|
-
|
|
107
|
-
for (const config of this.validConfigs()) {
|
|
108
|
-
if (config.chainId !== undefined && config.chainId !== chainId)
|
|
109
|
-
continue;
|
|
110
|
-
const match = this.marketsFromConfig(config, chainId).find((m) => m.marketId.poolId === poolId);
|
|
111
|
-
if (match)
|
|
112
|
-
return match;
|
|
113
|
-
}
|
|
114
|
-
throw new Error(`Market with poolId ${poolId} not found on chain ${chainId}`);
|
|
121
|
+
return findMarket(getValidMarketConfigs(this._config.marketAllowlist), params.chainId, params.poolId, configToMarkets);
|
|
115
122
|
}
|
|
116
123
|
/**
|
|
117
124
|
* Expand the market allowlist into concrete SwapMarket objects.
|
|
118
|
-
*
|
|
119
|
-
* @param params - Optional chain and asset filters
|
|
125
|
+
* @param params - Optional filters (chainId, asset)
|
|
120
126
|
* @returns All configured markets matching the filters
|
|
121
127
|
*/
|
|
122
128
|
async _getMarkets(params) {
|
|
123
|
-
return
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
: this.supportedChainIds();
|
|
129
|
-
return chainIds.flatMap((chainId) => this.marketsFromConfig(config, chainId, params.asset));
|
|
129
|
+
return expandMarkets({
|
|
130
|
+
configs: getValidMarketConfigs(this._config.marketAllowlist),
|
|
131
|
+
filters: params,
|
|
132
|
+
supportedChainIds: this.supportedChainIds(),
|
|
133
|
+
toMarkets: configToMarkets,
|
|
130
134
|
});
|
|
131
135
|
}
|
|
132
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
133
|
-
// Private helpers
|
|
134
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
135
136
|
/**
|
|
136
|
-
*
|
|
137
|
-
* @param assetIn - Input asset
|
|
138
|
-
* @param assetOut - Output asset
|
|
139
|
-
* @param chainId - Target chain
|
|
140
|
-
* @returns Market config with guaranteed fee and tickSpacing
|
|
137
|
+
* Resolve and validate Uniswap market config for a pair.
|
|
141
138
|
* @throws If pair not in allowlist or missing fee/tickSpacing
|
|
142
139
|
*/
|
|
143
140
|
resolveUniswapConfig(assetIn, assetOut, chainId) {
|
|
@@ -147,60 +144,5 @@ export class UniswapSwapProvider extends SwapProvider {
|
|
|
147
144
|
}
|
|
148
145
|
return config;
|
|
149
146
|
}
|
|
150
|
-
/** @returns Allowlist entries that have the required fee and tickSpacing set */
|
|
151
|
-
validConfigs() {
|
|
152
|
-
return (this._config.marketAllowlist ?? []).filter((f) => f.fee !== undefined && f.tickSpacing !== undefined);
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Generate all SwapMarket objects from a single config entry on a given chain.
|
|
156
|
-
* @param config - Market config with fee/tickSpacing
|
|
157
|
-
* @param chainId - Target chain
|
|
158
|
-
* @param asset - If provided, only return markets containing this asset
|
|
159
|
-
*/
|
|
160
|
-
marketsFromConfig(config, chainId, asset) {
|
|
161
|
-
return this.assetPairs(config.assets, asset)
|
|
162
|
-
.map(([a, b]) => this.configToMarket(a, b, chainId, config.fee, config.tickSpacing))
|
|
163
|
-
.filter((m) => m !== null);
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Generate unique asset pairs, optionally scoped to pairs containing a required asset.
|
|
167
|
-
* @param assets - Full list of assets from a market config
|
|
168
|
-
* @param requiredAsset - If set, only pairs including this asset are returned
|
|
169
|
-
*/
|
|
170
|
-
assetPairs(assets, requiredAsset) {
|
|
171
|
-
return assets
|
|
172
|
-
.flatMap((a, i) => assets.slice(i + 1).map((b) => [a, b]))
|
|
173
|
-
.filter(([a, b]) => !requiredAsset || a === requiredAsset || b === requiredAsset);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Build a SwapMarket from two assets and V4 pool parameters.
|
|
177
|
-
* Computes a deterministic poolId from the sorted pool key.
|
|
178
|
-
* @returns SwapMarket, or null if either asset lacks an address on this chain
|
|
179
|
-
*/
|
|
180
|
-
configToMarket(assetA, assetB, chainId, fee, tickSpacing) {
|
|
181
|
-
const addrA = assetA.address[chainId];
|
|
182
|
-
const addrB = assetB.address[chainId];
|
|
183
|
-
if (!addrA || addrA === 'native' || !addrB || addrB === 'native')
|
|
184
|
-
return null;
|
|
185
|
-
// V4 requires currency0 < currency1 for deterministic pool keys
|
|
186
|
-
const [currency0, currency1] = addrA.toLowerCase() < addrB.toLowerCase()
|
|
187
|
-
? [addrA, addrB]
|
|
188
|
-
: [addrB, addrA];
|
|
189
|
-
// PoolId = keccak256(abi.encode(PoolKey)) per V4's PoolIdLibrary
|
|
190
|
-
// @see https://github.com/Uniswap/v4-core/blob/main/src/types/PoolId.sol
|
|
191
|
-
const poolId = keccak256(encodeAbiParameters(POOL_KEY_ABI_TYPE, [
|
|
192
|
-
currency0,
|
|
193
|
-
currency1,
|
|
194
|
-
fee,
|
|
195
|
-
tickSpacing,
|
|
196
|
-
'0x0000000000000000000000000000000000000000',
|
|
197
|
-
]));
|
|
198
|
-
return {
|
|
199
|
-
marketId: { poolId, chainId },
|
|
200
|
-
assets: [assetA, assetB],
|
|
201
|
-
fee,
|
|
202
|
-
provider: 'uniswap',
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
147
|
}
|
|
206
148
|
//# sourceMappingURL=UniswapSwapProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniswapSwapProvider.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/UniswapSwapProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"UniswapSwapProvider.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/UniswapSwapProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,yBAAyB,EACzB,QAAQ,GACT,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAe5C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEnE;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAuC;IAC9E,yBAAyB;QACvB,OAAO,oBAAoB,EAAE,CAAA;IAC/B,CAAC;IAES,KAAK,CAAC,QAAQ,CACtB,MAA0B;QAE1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,WAAW;gBAC1B,CAAC,CAAC,UAAU,CACR,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAClE;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE,MAAM,CAAC,YAAY;gBAC5B,CAAC,CAAC,UAAU,CACR,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpE;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,KAAgB;QAC9C,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEpD,OAAO,IAAI,CAAC,qBAAqB,CAC/B;YACE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAU;YAC3B,aAAa,EAAE,KAAK,CAAC,SAAU;YAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,EACD,KAAK,CAAC,WAAW,EACjB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,eAAe,CAC1B,CAAA;IACH,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,MAAuB;QAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;QAC7C,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAE1E,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAEjE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC;YAC3B,OAAO;YACP,QAAQ;YACR,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACnD,YAAY;YACZ,OAAO;YACP,YAAY;YACZ,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,kBAAkB,EAAE,SAAS,CAAC,WAAW;YACzC,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,WAAW,EAAE,YAAY,CAAC,WAAW;SACtC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,yBAAyB,CAAC;YAC7C,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;YACnD,YAAY;YACZ,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,OAAO;YACP,KAAK;YACL,sBAAsB,EAAE,SAAS,CAAC,eAAe;YACjD,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,WAAW,EAAE,YAAY,CAAC,WAAW;SACtC,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QAEvE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAClE,KAAK,CAAC,YAAY,EAClB,QAAQ,EACR,QAAQ,CACT,CAAA;QAED,OAAO;YACL,OAAO;YACP,QAAQ;YACR,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY;YACZ,eAAe;YACf,KAAK,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;YACvC,YAAY,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS;YAC9C,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE;gBACT,YAAY;gBACZ,aAAa,EAAE,SAAS,CAAC,eAAe;gBACxC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxD,eAAe,EAAE;oBACf,GAAG,EAAE,YAAY,CAAC,GAAG;oBACrB,WAAW,EAAE,YAAY,CAAC,WAAW;oBACrC,cAAc,EAAE,SAAS,CAAC,OAAO;iBAClC;aACF;YACD,QAAQ,EAAE,OAAO;YACjB,QAAQ;YACR,QAAQ;YACR,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,eAAe,EAAE,SAAS;SAC3B,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,UAAU,CAAC,MAA2B;QACpD,OAAO,UAAU,CACf,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EACnD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,MAAM,EACb,eAAe,CAChB,CAAA;IACH,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,WAAW,CACzB,MAA4B;QAE5B,OAAO,aAAa,CAAC;YACnB,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAC5D,OAAO,EAAE,MAAM;YACf,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;YAC3C,SAAS,EAAE,eAAe;SAC3B,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAC1B,OAAc,EACd,QAAe,EACf,OAAyB;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAErD,CAAA;QACb,IAAI,MAAM,EAAE,GAAG,KAAK,SAAS,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,mDAAmD,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CACzG,CAAA;QACH,CAAC;QACD,OAAO,MAAoE,CAAA;IAC7E,CAAC;CACF"}
|
|
@@ -99,29 +99,30 @@ describe('UniswapSwapProvider', () => {
|
|
|
99
99
|
})).rejects.toThrow('fee and tickSpacing must be configured');
|
|
100
100
|
});
|
|
101
101
|
});
|
|
102
|
-
describe('
|
|
103
|
-
it('returns
|
|
102
|
+
describe('getQuote', () => {
|
|
103
|
+
it('returns swap quote', async () => {
|
|
104
104
|
const provider = createProvider();
|
|
105
|
-
const
|
|
105
|
+
const quote = await provider.getQuote({
|
|
106
106
|
assetIn: USDC,
|
|
107
107
|
assetOut: OP,
|
|
108
108
|
amountIn: 100,
|
|
109
109
|
chainId: CHAIN_ID,
|
|
110
110
|
});
|
|
111
|
-
expect(
|
|
112
|
-
expect(
|
|
113
|
-
expect(
|
|
114
|
-
expect(
|
|
111
|
+
expect(quote.price).toBeTypeOf('number');
|
|
112
|
+
expect(quote.amountIn).toBeDefined();
|
|
113
|
+
expect(quote.amountOut).toBeDefined();
|
|
114
|
+
expect(quote.route.path).toEqual([USDC, OP]);
|
|
115
|
+
expect(quote.execution).toBeDefined();
|
|
115
116
|
});
|
|
116
117
|
it('defaults to 1 unit when no amount specified', async () => {
|
|
117
118
|
const provider = createProvider();
|
|
118
|
-
const
|
|
119
|
+
const quote = await provider.getQuote({
|
|
119
120
|
assetIn: USDC,
|
|
120
121
|
assetOut: OP,
|
|
121
122
|
chainId: CHAIN_ID,
|
|
122
123
|
});
|
|
123
124
|
// 1 USDC = 1000000 (6 decimals)
|
|
124
|
-
expect(
|
|
125
|
+
expect(quote.amountInRaw).toBe(1000000n);
|
|
125
126
|
});
|
|
126
127
|
});
|
|
127
128
|
describe('getMarkets', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniswapSwapProvider.test.js","sourceRoot":"","sources":["../../../../../src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"UniswapSwapProvider.test.js","sourceRoot":"","sources":["../../../../../src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ describe('getQuote', () => {
|
|
|
39
39
|
const quote = await getQuote({
|
|
40
40
|
assetIn: USDC,
|
|
41
41
|
assetOut: WETH,
|
|
42
|
-
|
|
42
|
+
amountInRaw: 100000000n, // 100 USDC
|
|
43
43
|
chainId: CHAIN_ID,
|
|
44
44
|
publicClient,
|
|
45
45
|
quoterAddress: QUOTER,
|
|
@@ -49,8 +49,8 @@ describe('getQuote', () => {
|
|
|
49
49
|
});
|
|
50
50
|
expect(quote.amountIn).toBe(100);
|
|
51
51
|
expect(quote.amountOut).toBe(0.5);
|
|
52
|
-
expect(quote.
|
|
53
|
-
expect(quote.
|
|
52
|
+
expect(quote.amountInRaw).toBe(100000000n);
|
|
53
|
+
expect(quote.amountOutRaw).toBe(500000000000000000n);
|
|
54
54
|
expect(quote.price).toBeDefined();
|
|
55
55
|
expect(quote.priceInverse).toBeDefined();
|
|
56
56
|
expect(typeof quote.priceImpact).toBe('number');
|
|
@@ -72,7 +72,7 @@ describe('getQuote', () => {
|
|
|
72
72
|
const quote = await getQuote({
|
|
73
73
|
assetIn: USDC,
|
|
74
74
|
assetOut: WETH,
|
|
75
|
-
|
|
75
|
+
amountOutRaw: 500000000000000000n, // 0.5 WETH
|
|
76
76
|
chainId: CHAIN_ID,
|
|
77
77
|
publicClient,
|
|
78
78
|
quoterAddress: QUOTER,
|
|
@@ -80,8 +80,8 @@ describe('getQuote', () => {
|
|
|
80
80
|
fee: FEE,
|
|
81
81
|
tickSpacing: TICK_SPACING,
|
|
82
82
|
});
|
|
83
|
-
expect(quote.
|
|
84
|
-
expect(quote.
|
|
83
|
+
expect(quote.amountInRaw).toBe(100000000n);
|
|
84
|
+
expect(quote.amountOutRaw).toBe(500000000000000000n);
|
|
85
85
|
expect(publicClient.simulateContract).toHaveBeenCalledWith(expect.objectContaining({
|
|
86
86
|
functionName: 'quoteExactOutputSingle',
|
|
87
87
|
}));
|
|
@@ -91,7 +91,7 @@ describe('getQuote', () => {
|
|
|
91
91
|
await getQuote({
|
|
92
92
|
assetIn: WETH, // higher address
|
|
93
93
|
assetOut: USDC, // lower address
|
|
94
|
-
|
|
94
|
+
amountInRaw: 1000000000000000000n,
|
|
95
95
|
chainId: CHAIN_ID,
|
|
96
96
|
publicClient,
|
|
97
97
|
quoterAddress: QUOTER,
|
|
@@ -110,7 +110,7 @@ describe('getQuote', () => {
|
|
|
110
110
|
await getQuote({
|
|
111
111
|
assetIn: ETH,
|
|
112
112
|
assetOut: USDC,
|
|
113
|
-
|
|
113
|
+
amountInRaw: 1000000000000000000n,
|
|
114
114
|
chainId: CHAIN_ID,
|
|
115
115
|
publicClient,
|
|
116
116
|
quoterAddress: QUOTER,
|
|
@@ -128,7 +128,7 @@ describe('getQuote', () => {
|
|
|
128
128
|
await getQuote({
|
|
129
129
|
assetIn: USDC,
|
|
130
130
|
assetOut: ETH,
|
|
131
|
-
|
|
131
|
+
amountInRaw: 100000000n,
|
|
132
132
|
chainId: CHAIN_ID,
|
|
133
133
|
publicClient,
|
|
134
134
|
quoterAddress: QUOTER,
|
|
@@ -209,15 +209,15 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
209
209
|
priceInverse: '200',
|
|
210
210
|
amountIn: 100,
|
|
211
211
|
amountOut: 0.5,
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
amountInRaw: 100000000n,
|
|
213
|
+
amountOutRaw: 500000000000000000n,
|
|
214
214
|
priceImpact: 0.001,
|
|
215
215
|
route: { path: [USDC, WETH], pools: [] },
|
|
216
216
|
gasEstimate: 150000n,
|
|
217
217
|
};
|
|
218
218
|
it('encodes exact-in swap calldata', () => {
|
|
219
219
|
const calldata = encodeUniversalRouterSwap({
|
|
220
|
-
|
|
220
|
+
amountInRaw: 100000000n,
|
|
221
221
|
assetIn: USDC,
|
|
222
222
|
assetOut: WETH,
|
|
223
223
|
slippage: 0.005,
|
|
@@ -234,7 +234,7 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
234
234
|
});
|
|
235
235
|
it('encodes exact-out swap calldata', () => {
|
|
236
236
|
const calldata = encodeUniversalRouterSwap({
|
|
237
|
-
|
|
237
|
+
amountOutRaw: 500000000000000000n,
|
|
238
238
|
assetIn: USDC,
|
|
239
239
|
assetOut: WETH,
|
|
240
240
|
slippage: 0.005,
|
|
@@ -251,7 +251,7 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
251
251
|
});
|
|
252
252
|
it('produces different calldata for exact-in vs exact-out', () => {
|
|
253
253
|
const exactIn = encodeUniversalRouterSwap({
|
|
254
|
-
|
|
254
|
+
amountInRaw: 100000000n,
|
|
255
255
|
assetIn: USDC,
|
|
256
256
|
assetOut: WETH,
|
|
257
257
|
slippage: 0.005,
|
|
@@ -264,7 +264,7 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
264
264
|
tickSpacing: TICK_SPACING,
|
|
265
265
|
});
|
|
266
266
|
const exactOut = encodeUniversalRouterSwap({
|
|
267
|
-
|
|
267
|
+
amountOutRaw: 500000000000000000n,
|
|
268
268
|
assetIn: USDC,
|
|
269
269
|
assetOut: WETH,
|
|
270
270
|
slippage: 0.005,
|
|
@@ -280,7 +280,7 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
280
280
|
});
|
|
281
281
|
it('applies slippage to minimum output for exact-in', () => {
|
|
282
282
|
const noSlippage = encodeUniversalRouterSwap({
|
|
283
|
-
|
|
283
|
+
amountInRaw: 100000000n,
|
|
284
284
|
assetIn: USDC,
|
|
285
285
|
assetOut: WETH,
|
|
286
286
|
slippage: 0,
|
|
@@ -293,7 +293,7 @@ describe('encodeUniversalRouterSwap', () => {
|
|
|
293
293
|
tickSpacing: TICK_SPACING,
|
|
294
294
|
});
|
|
295
295
|
const withSlippage = encodeUniversalRouterSwap({
|
|
296
|
-
|
|
296
|
+
amountInRaw: 100000000n,
|
|
297
297
|
assetIn: USDC,
|
|
298
298
|
assetOut: WETH,
|
|
299
299
|
slippage: 0.05, // 5%
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.test.js","sourceRoot":"","sources":["../../../../../src/swap/providers/uniswap/__tests__/sdk.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,WAAW,EAAE,MAAM,MAAM,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"sdk.test.js","sourceRoot":"","sources":["../../../../../src/swap/providers/uniswap/__tests__/sdk.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,11 @@ export interface UniswapAddresses {
|
|
|
10
10
|
quoter: Address;
|
|
11
11
|
permit2: Address;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Uniswap V4 contract addresses per chain
|
|
15
|
+
* @see https://docs.uniswap.org/contracts/v4/deployments
|
|
16
|
+
*/
|
|
17
|
+
export declare const UNISWAP_ADDRESSES: Partial<Record<SupportedChainId, UniswapAddresses>>;
|
|
13
18
|
/**
|
|
14
19
|
* Get Uniswap contract addresses for a chain
|
|
15
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAanC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;
|
|
1
|
+
{"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAanC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CACrC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CA0D3C,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAMlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD"}
|
|
@@ -4,7 +4,7 @@ import { PERMIT2_ADDRESS } from '../../../constants/contracts.js';
|
|
|
4
4
|
* Uniswap V4 contract addresses per chain
|
|
5
5
|
* @see https://docs.uniswap.org/contracts/v4/deployments
|
|
6
6
|
*/
|
|
7
|
-
const UNISWAP_ADDRESSES = {
|
|
7
|
+
export const UNISWAP_ADDRESSES = {
|
|
8
8
|
[mainnet.id]: {
|
|
9
9
|
poolManager: '0x000000000004444c5dc75cB358380D2e3dE08A90',
|
|
10
10
|
positionManager: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAc1D;;;GAGG;AACH,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/addresses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,eAAe,EACf,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAc1D;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACb,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QACT,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;QACb,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;QACf,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACZ,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;QAChB,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;IACD,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;QACpB,WAAW,EAAE,4CAA4C;QACzD,eAAe,EAAE,4CAA4C;QAC7D,eAAe,EAAE,4CAA4C;QAC7D,MAAM,EAAE,4CAA4C;QACpD,OAAO,EAAE,eAAe;KACzB;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAyB;IAEzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAuB,CAAA;AACzE,CAAC"}
|