@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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../constants/supportedChains.js';
|
|
3
|
+
import type { Asset } from '../../types/asset.js';
|
|
4
|
+
import type { GetSwapMarketsParams, SwapMarket, SwapMarketConfig } from '../../types/swap/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Sentinel address meaning "send output to msg.sender" in Universal Router commands.
|
|
7
|
+
* The Universal Router maps address(1) to msg.sender and address(2) to the router itself.
|
|
8
|
+
* Only valid in Universal Router calldata encoding — do not use as a general-purpose address.
|
|
9
|
+
* Both Uniswap and Velodrome/Aerodrome Universal Router forks use this convention.
|
|
10
|
+
* @see https://github.com/Uniswap/universal-router/blob/main/contracts/libraries/Constants.sol
|
|
11
|
+
*/
|
|
12
|
+
export declare const UNIVERSAL_ROUTER_MSG_SENDER: Address;
|
|
13
|
+
/**
|
|
14
|
+
* Generate unique asset pairs, optionally filtered to pairs containing a required asset.
|
|
15
|
+
* @param assets - Full list of assets from a market config
|
|
16
|
+
* @param requiredAsset - If set, only pairs including this asset are returned
|
|
17
|
+
*/
|
|
18
|
+
export declare function assetPairs(assets: Asset[], requiredAsset?: Asset): Array<[Asset, Asset]>;
|
|
19
|
+
/**
|
|
20
|
+
* Sort two addresses for deterministic pool ID computation.
|
|
21
|
+
* @returns [lower, higher] addresses
|
|
22
|
+
*/
|
|
23
|
+
export declare function sortAddressPair(addrA: string, addrB: string): [string, string];
|
|
24
|
+
/**
|
|
25
|
+
* Find a specific market by poolId across a set of configs.
|
|
26
|
+
* @param configs - Valid market configs to search
|
|
27
|
+
* @param chainId - Target chain
|
|
28
|
+
* @param poolId - Pool ID to match
|
|
29
|
+
* @param toMarkets - Provider-specific function that expands a config into SwapMarket[]
|
|
30
|
+
* @returns Matching market
|
|
31
|
+
* @throws If no matching market found
|
|
32
|
+
*/
|
|
33
|
+
export declare function findMarket<T extends SwapMarketConfig>(configs: T[], chainId: SupportedChainId, poolId: string, toMarkets: (config: T, chainId: SupportedChainId) => SwapMarket[]): SwapMarket;
|
|
34
|
+
/**
|
|
35
|
+
* Expand market configs into concrete SwapMarket objects with optional filters.
|
|
36
|
+
* @param options.configs - Valid market configs
|
|
37
|
+
* @param options.filters - Optional chainId and asset filters
|
|
38
|
+
* @param options.supportedChainIds - All chain IDs this provider supports
|
|
39
|
+
* @param options.toMarkets - Provider-specific function that expands a config into SwapMarket[]
|
|
40
|
+
*/
|
|
41
|
+
export declare function expandMarkets<T extends SwapMarketConfig>(options: {
|
|
42
|
+
configs: T[];
|
|
43
|
+
filters: GetSwapMarketsParams;
|
|
44
|
+
supportedChainIds: SupportedChainId[];
|
|
45
|
+
toMarkets: (config: T, chainId: SupportedChainId, asset?: Asset) => SwapMarket[];
|
|
46
|
+
}): SwapMarket[];
|
|
47
|
+
//# sourceMappingURL=markets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../../src/swap/core/markets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAE9B;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EACU,OAAO,CAAA;AAEzD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,CAAC,EAAE,KAAK,GACpB,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAMvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,gBAAgB,EACnD,OAAO,EAAE,CAAC,EAAE,EACZ,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,UAAU,EAAE,GAChE,UAAU,CASZ;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,gBAAgB,EAAE,OAAO,EAAE;IACjE,OAAO,EAAE,CAAC,EAAE,CAAA;IACZ,OAAO,EAAE,oBAAoB,CAAA;IAC7B,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;IACrC,SAAS,EAAE,CACT,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,KAAK,KACV,UAAU,EAAE,CAAA;CAClB,GAAG,UAAU,EAAE,CAaf"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sentinel address meaning "send output to msg.sender" in Universal Router commands.
|
|
3
|
+
* The Universal Router maps address(1) to msg.sender and address(2) to the router itself.
|
|
4
|
+
* Only valid in Universal Router calldata encoding — do not use as a general-purpose address.
|
|
5
|
+
* Both Uniswap and Velodrome/Aerodrome Universal Router forks use this convention.
|
|
6
|
+
* @see https://github.com/Uniswap/universal-router/blob/main/contracts/libraries/Constants.sol
|
|
7
|
+
*/
|
|
8
|
+
export const UNIVERSAL_ROUTER_MSG_SENDER = '0x0000000000000000000000000000000000000001';
|
|
9
|
+
/**
|
|
10
|
+
* Generate unique asset pairs, optionally filtered to pairs containing a required asset.
|
|
11
|
+
* @param assets - Full list of assets from a market config
|
|
12
|
+
* @param requiredAsset - If set, only pairs including this asset are returned
|
|
13
|
+
*/
|
|
14
|
+
export function assetPairs(assets, requiredAsset) {
|
|
15
|
+
return assets
|
|
16
|
+
.flatMap((a, i) => assets.slice(i + 1).map((b) => [a, b]))
|
|
17
|
+
.filter(([a, b]) => !requiredAsset || a === requiredAsset || b === requiredAsset);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Sort two addresses for deterministic pool ID computation.
|
|
21
|
+
* @returns [lower, higher] addresses
|
|
22
|
+
*/
|
|
23
|
+
export function sortAddressPair(addrA, addrB) {
|
|
24
|
+
return addrA.toLowerCase() < addrB.toLowerCase()
|
|
25
|
+
? [addrA, addrB]
|
|
26
|
+
: [addrB, addrA];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Find a specific market by poolId across a set of configs.
|
|
30
|
+
* @param configs - Valid market configs to search
|
|
31
|
+
* @param chainId - Target chain
|
|
32
|
+
* @param poolId - Pool ID to match
|
|
33
|
+
* @param toMarkets - Provider-specific function that expands a config into SwapMarket[]
|
|
34
|
+
* @returns Matching market
|
|
35
|
+
* @throws If no matching market found
|
|
36
|
+
*/
|
|
37
|
+
export function findMarket(configs, chainId, poolId, toMarkets) {
|
|
38
|
+
for (const config of configs) {
|
|
39
|
+
if (config.chainId !== undefined && config.chainId !== chainId)
|
|
40
|
+
continue;
|
|
41
|
+
const match = toMarkets(config, chainId).find((m) => m.marketId.poolId === poolId);
|
|
42
|
+
if (match)
|
|
43
|
+
return match;
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Market with poolId ${poolId} not found on chain ${chainId}`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Expand market configs into concrete SwapMarket objects with optional filters.
|
|
49
|
+
* @param options.configs - Valid market configs
|
|
50
|
+
* @param options.filters - Optional chainId and asset filters
|
|
51
|
+
* @param options.supportedChainIds - All chain IDs this provider supports
|
|
52
|
+
* @param options.toMarkets - Provider-specific function that expands a config into SwapMarket[]
|
|
53
|
+
*/
|
|
54
|
+
export function expandMarkets(options) {
|
|
55
|
+
const { configs, filters, supportedChainIds, toMarkets } = options;
|
|
56
|
+
return configs.flatMap((config) => {
|
|
57
|
+
const chainIds = filters.chainId
|
|
58
|
+
? [filters.chainId]
|
|
59
|
+
: config.chainId
|
|
60
|
+
? [config.chainId]
|
|
61
|
+
: supportedChainIds;
|
|
62
|
+
return chainIds.flatMap((chainId) => toMarkets(config, chainId, filters.asset));
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=markets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markets.js","sourceRoot":"","sources":["../../../src/swap/core/markets.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAAuD,CAAA;AAEzD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACxB,MAAe,EACf,aAAqB;IAErB,OAAO,MAAM;SACV,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACzE,MAAM,CACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,aAAa,CACzE,CAAA;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,KAAa;IAEb,OAAO,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE;QAC9C,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,OAAY,EACZ,OAAyB,EACzB,MAAc,EACd,SAAiE;IAEjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;YAAE,SAAQ;QACxE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CACpC,CAAA;QACD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,uBAAuB,OAAO,EAAE,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAA6B,OASzD;IACC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAClE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO;YAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACnB,CAAC,CAAC,MAAM,CAAC,OAAO;gBACd,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClB,CAAC,CAAC,iBAAiB,CAAA;QAEvB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAClC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAC1C,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/swap/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ export { BaseSwapNamespace } from './namespaces/BaseSwapNamespace.js';
|
|
|
4
4
|
export { WalletSwapNamespace } from './namespaces/WalletSwapNamespace.js';
|
|
5
5
|
export type { UniswapMarketConfig, UniswapSwapProviderConfig, } from './providers/uniswap/types.js';
|
|
6
6
|
export { UniswapSwapProvider } from './providers/uniswap/UniswapSwapProvider.js';
|
|
7
|
+
export type { VelodromeMarketConfig, VelodromeSwapProviderConfig, } from './providers/velodrome/types.js';
|
|
8
|
+
export { VelodromeSwapProvider } from './providers/velodrome/VelodromeSwapProvider.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/swap/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAG9E,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAG9E,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AACrF,YAAY,EACV,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA"}
|
package/dist/swap/index.js
CHANGED
|
@@ -5,4 +5,5 @@ export { ActionsSwapNamespace } from './namespaces/ActionsSwapNamespace.js';
|
|
|
5
5
|
export { BaseSwapNamespace } from './namespaces/BaseSwapNamespace.js';
|
|
6
6
|
export { WalletSwapNamespace } from './namespaces/WalletSwapNamespace.js';
|
|
7
7
|
export { UniswapSwapProvider } from './providers/uniswap/UniswapSwapProvider.js';
|
|
8
|
+
export { VelodromeSwapProvider } from './providers/velodrome/VelodromeSwapProvider.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/swap/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,aAAa;AACb,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAO9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,aAAa;AACb,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAO9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAKrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseSwapNamespace } from './BaseSwapNamespace.js';
|
|
2
2
|
/**
|
|
3
|
-
* Actions swap namespace (read-only, no wallet required)
|
|
4
|
-
*
|
|
3
|
+
* Actions swap namespace (read-only, no wallet required).
|
|
4
|
+
* Provides getQuote(), getMarket(), and getMarkets() for read-only access without a wallet.
|
|
5
5
|
*/
|
|
6
6
|
export declare class ActionsSwapNamespace extends BaseSwapNamespace {
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseSwapNamespace } from './BaseSwapNamespace.js';
|
|
2
2
|
/**
|
|
3
|
-
* Actions swap namespace (read-only, no wallet required)
|
|
4
|
-
*
|
|
3
|
+
* Actions swap namespace (read-only, no wallet required).
|
|
4
|
+
* Provides getQuote(), getMarket(), and getMarkets() for read-only access without a wallet.
|
|
5
5
|
*/
|
|
6
6
|
export class ActionsSwapNamespace extends BaseSwapNamespace {
|
|
7
7
|
}
|
|
@@ -1,22 +1,52 @@
|
|
|
1
1
|
import type { SupportedChainId } from '../../constants/supportedChains.js';
|
|
2
2
|
import type { SwapProvider } from '../core/SwapProvider.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { SwapProviderName, SwapSettings } from '../../types/actions.js';
|
|
4
|
+
import type { Asset } from '../../types/asset.js';
|
|
5
|
+
import type { GetSwapMarketParams, GetSwapMarketsParams, SwapMarket, SwapProviderConfig, SwapProviders, SwapQuote, SwapQuoteParams } from '../../types/swap/index.js';
|
|
4
6
|
/**
|
|
5
7
|
* Base swap namespace with shared read-only operations
|
|
6
8
|
*/
|
|
7
9
|
export declare abstract class BaseSwapNamespace {
|
|
8
10
|
protected readonly providers: SwapProviders;
|
|
9
|
-
|
|
11
|
+
protected readonly settings?: SwapSettings | undefined;
|
|
12
|
+
constructor(providers: SwapProviders, settings?: SwapSettings | undefined);
|
|
10
13
|
/**
|
|
11
|
-
* Get
|
|
14
|
+
* Get a swap quote with pre-built execution data.
|
|
15
|
+
* When `routing: 'price'` is set in settings and no explicit provider is requested,
|
|
16
|
+
* fetches quotes from all eligible providers in parallel and returns the best price.
|
|
17
|
+
* @param params - Quote parameters (assets, amounts, chain, optional provider)
|
|
18
|
+
* @returns The best available SwapQuote
|
|
12
19
|
*/
|
|
13
|
-
|
|
20
|
+
getQuote(params: SwapQuoteParams): Promise<SwapQuote>;
|
|
14
21
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param params -
|
|
22
|
+
* Fetch quotes from all eligible providers in parallel and return the best.
|
|
23
|
+
* @param params - Quote parameters
|
|
24
|
+
* @returns The quote with the highest amountOut
|
|
25
|
+
* @throws If no provider returns a valid quote
|
|
26
|
+
*/
|
|
27
|
+
private getBestQuote;
|
|
28
|
+
/**
|
|
29
|
+
* Fetch quotes from all eligible providers in parallel.
|
|
30
|
+
* Providers that don't support the pair or fail to quote are silently skipped.
|
|
31
|
+
* @param params - Quote parameters
|
|
32
|
+
* @returns Array of successful quotes (may be empty if all providers fail)
|
|
33
|
+
*/
|
|
34
|
+
private fetchAllQuotes;
|
|
35
|
+
/**
|
|
36
|
+
* Fetch quotes from all eligible providers in parallel.
|
|
37
|
+
* Unlike getQuote(), returns all successful quotes instead of just the best.
|
|
38
|
+
* If an explicit provider is specified, returns a single-element array from that provider.
|
|
39
|
+
* @param params - Quote parameters (assets, amounts, chain, optional provider)
|
|
40
|
+
* @returns Array of SwapQuotes sorted by amountOut descending (best first)
|
|
41
|
+
*/
|
|
42
|
+
getQuotes(params: SwapQuoteParams): Promise<SwapQuote[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Get a specific swap market by ID.
|
|
45
|
+
* @param params - Market identifier (poolId + chainId)
|
|
46
|
+
* @param provider - Optional provider name to query directly instead of searching all
|
|
17
47
|
* @returns Market information
|
|
18
48
|
*/
|
|
19
|
-
getMarket(params: GetSwapMarketParams): Promise<SwapMarket>;
|
|
49
|
+
getMarket(params: GetSwapMarketParams, provider?: SwapProviderName): Promise<SwapMarket>;
|
|
20
50
|
/**
|
|
21
51
|
* Get available swap markets across all providers
|
|
22
52
|
* @param params - Optional filtering by chainId or asset
|
|
@@ -28,6 +58,16 @@ export declare abstract class BaseSwapNamespace {
|
|
|
28
58
|
*/
|
|
29
59
|
supportedChainIds(): SupportedChainId[];
|
|
30
60
|
protected getAllProviders(): Array<SwapProvider<SwapProviderConfig>>;
|
|
31
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Resolve which provider handles a request.
|
|
63
|
+
*
|
|
64
|
+
* Precedence:
|
|
65
|
+
* 1. Explicit `provider` param on the call
|
|
66
|
+
* 2. routing.defaultProvider (when no strategy set)
|
|
67
|
+
* 3. routing.strategy match (market-aware, defaultProvider as tiebreaker)
|
|
68
|
+
* 4. First provider whose allowlist matches
|
|
69
|
+
* 5. First configured provider
|
|
70
|
+
*/
|
|
71
|
+
protected resolveProvider(provider: SwapProviderName | undefined, assetIn: Asset, assetOut: Asset, chainId: SupportedChainId): SwapProvider<SwapProviderConfig>;
|
|
32
72
|
}
|
|
33
73
|
//# sourceMappingURL=BaseSwapNamespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"BaseSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B;;GAEG;AACH,8BAAsB,iBAAiB;IAEnC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY;gBADvB,SAAS,EAAE,aAAa,EACxB,QAAQ,CAAC,EAAE,YAAY,YAAA;IAG5C;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IA2B3D;;;;;OAKG;YACW,YAAY;IAmB1B;;;;;OAKG;YACW,cAAc;IAsB5B;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAqB9D;;;;;OAKG;IACG,SAAS,CACb,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAqBtB;;;;OAIG;IACG,UAAU,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO1E;;OAEG;IACH,iBAAiB,IAAI,gBAAgB,EAAE;IAWvC,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAMpE;;;;;;;;;OASG;IACH,SAAS,CAAC,eAAe,CACvB,QAAQ,EAAE,gBAAgB,GAAG,SAAS,EACtC,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,gBAAgB,GACxB,YAAY,CAAC,kBAAkB,CAAC;CA0CpC"}
|
|
@@ -2,24 +2,108 @@
|
|
|
2
2
|
* Base swap namespace with shared read-only operations
|
|
3
3
|
*/
|
|
4
4
|
export class BaseSwapNamespace {
|
|
5
|
-
constructor(providers) {
|
|
5
|
+
constructor(providers, settings) {
|
|
6
6
|
this.providers = providers;
|
|
7
|
+
this.settings = settings;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
|
-
* Get
|
|
10
|
+
* Get a swap quote with pre-built execution data.
|
|
11
|
+
* When `routing: 'price'` is set in settings and no explicit provider is requested,
|
|
12
|
+
* fetches quotes from all eligible providers in parallel and returns the best price.
|
|
13
|
+
* @param params - Quote parameters (assets, amounts, chain, optional provider)
|
|
14
|
+
* @returns The best available SwapQuote
|
|
10
15
|
*/
|
|
11
|
-
async
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
async getQuote(params) {
|
|
17
|
+
// Explicit provider — skip routing
|
|
18
|
+
if (params.provider) {
|
|
19
|
+
const provider = this.resolveProvider(params.provider, params.assetIn, params.assetOut, params.chainId);
|
|
20
|
+
return provider.getQuote(params);
|
|
21
|
+
}
|
|
22
|
+
// Price routing — quote all eligible providers, return best
|
|
23
|
+
if (this.settings?.routing === 'price') {
|
|
24
|
+
return this.getBestQuote(params);
|
|
25
|
+
}
|
|
26
|
+
// No routing — resolve single provider via fallback logic
|
|
27
|
+
const provider = this.resolveProvider(undefined, params.assetIn, params.assetOut, params.chainId);
|
|
28
|
+
return provider.getQuote(params);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Fetch quotes from all eligible providers in parallel and return the best.
|
|
32
|
+
* @param params - Quote parameters
|
|
33
|
+
* @returns The quote with the highest amountOut
|
|
34
|
+
* @throws If no provider returns a valid quote
|
|
35
|
+
*/
|
|
36
|
+
async getBestQuote(params) {
|
|
37
|
+
const quotes = await this.fetchAllQuotes(params);
|
|
38
|
+
let best = null;
|
|
39
|
+
for (const quote of quotes) {
|
|
40
|
+
if (!best || quote.amountOutRaw > best.amountOutRaw) {
|
|
41
|
+
best = quote;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!best) {
|
|
45
|
+
throw new Error(`All providers failed to quote ${params.assetIn.metadata.symbol}/${params.assetOut.metadata.symbol}`);
|
|
46
|
+
}
|
|
47
|
+
return best;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Fetch quotes from all eligible providers in parallel.
|
|
51
|
+
* Providers that don't support the pair or fail to quote are silently skipped.
|
|
52
|
+
* @param params - Quote parameters
|
|
53
|
+
* @returns Array of successful quotes (may be empty if all providers fail)
|
|
54
|
+
*/
|
|
55
|
+
async fetchAllQuotes(params) {
|
|
56
|
+
const eligible = this.getAllProviders().filter((p) => p.isMarketSupported(params.assetIn, params.assetOut, params.chainId));
|
|
57
|
+
if (eligible.length === 0) {
|
|
58
|
+
throw new Error(`No provider supports ${params.assetIn.metadata.symbol}/${params.assetOut.metadata.symbol} on chain ${params.chainId}`);
|
|
59
|
+
}
|
|
60
|
+
const results = await Promise.allSettled(eligible.map((p) => p.getQuote(params)));
|
|
61
|
+
return results
|
|
62
|
+
.filter((r) => r.status === 'fulfilled')
|
|
63
|
+
.map((r) => r.value);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Fetch quotes from all eligible providers in parallel.
|
|
67
|
+
* Unlike getQuote(), returns all successful quotes instead of just the best.
|
|
68
|
+
* If an explicit provider is specified, returns a single-element array from that provider.
|
|
69
|
+
* @param params - Quote parameters (assets, amounts, chain, optional provider)
|
|
70
|
+
* @returns Array of SwapQuotes sorted by amountOut descending (best first)
|
|
71
|
+
*/
|
|
72
|
+
async getQuotes(params) {
|
|
73
|
+
if (params.provider) {
|
|
74
|
+
const provider = this.resolveProvider(params.provider, params.assetIn, params.assetOut, params.chainId);
|
|
75
|
+
return [await provider.getQuote(params)];
|
|
76
|
+
}
|
|
77
|
+
const quotes = await this.fetchAllQuotes(params);
|
|
78
|
+
return quotes.sort((a, b) => a.amountOutRaw > b.amountOutRaw
|
|
79
|
+
? -1
|
|
80
|
+
: a.amountOutRaw < b.amountOutRaw
|
|
81
|
+
? 1
|
|
82
|
+
: 0);
|
|
14
83
|
}
|
|
15
84
|
/**
|
|
16
|
-
* Get a specific swap market
|
|
17
|
-
* @param params - Market identifier
|
|
85
|
+
* Get a specific swap market by ID.
|
|
86
|
+
* @param params - Market identifier (poolId + chainId)
|
|
87
|
+
* @param provider - Optional provider name to query directly instead of searching all
|
|
18
88
|
* @returns Market information
|
|
19
89
|
*/
|
|
20
|
-
async getMarket(params) {
|
|
21
|
-
|
|
22
|
-
|
|
90
|
+
async getMarket(params, provider) {
|
|
91
|
+
if (provider) {
|
|
92
|
+
const named = this.providers[provider];
|
|
93
|
+
if (!named) {
|
|
94
|
+
throw new Error(`Swap provider "${provider}" not configured`);
|
|
95
|
+
}
|
|
96
|
+
return named.getMarket(params);
|
|
97
|
+
}
|
|
98
|
+
for (const p of this.getAllProviders()) {
|
|
99
|
+
try {
|
|
100
|
+
return await p.getMarket(params);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
throw new Error(`Market with poolId ${params.poolId} not found on chain ${params.chainId}`);
|
|
23
107
|
}
|
|
24
108
|
/**
|
|
25
109
|
* Get available swap markets across all providers
|
|
@@ -42,17 +126,56 @@ export class BaseSwapNamespace {
|
|
|
42
126
|
}
|
|
43
127
|
return Array.from(chainIds);
|
|
44
128
|
}
|
|
45
|
-
// SwapProviders keys are optional (uniswap?,
|
|
129
|
+
// SwapProviders keys are optional (uniswap?, velodrome?, etc.) so filter out unconfigured ones
|
|
46
130
|
getAllProviders() {
|
|
47
131
|
return Object.values(this.providers).filter((p) => p !== undefined);
|
|
48
132
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
133
|
+
/**
|
|
134
|
+
* Resolve which provider handles a request.
|
|
135
|
+
*
|
|
136
|
+
* Precedence:
|
|
137
|
+
* 1. Explicit `provider` param on the call
|
|
138
|
+
* 2. routing.defaultProvider (when no strategy set)
|
|
139
|
+
* 3. routing.strategy match (market-aware, defaultProvider as tiebreaker)
|
|
140
|
+
* 4. First provider whose allowlist matches
|
|
141
|
+
* 5. First configured provider
|
|
142
|
+
*/
|
|
143
|
+
resolveProvider(provider, assetIn, assetOut, chainId) {
|
|
144
|
+
const allProviders = this.getAllProviders();
|
|
145
|
+
if (allProviders.length === 0) {
|
|
53
146
|
throw new Error('No swap provider configured');
|
|
54
147
|
}
|
|
55
|
-
|
|
148
|
+
// 1. Explicit provider param
|
|
149
|
+
if (provider) {
|
|
150
|
+
const named = this.providers[provider];
|
|
151
|
+
if (!named) {
|
|
152
|
+
throw new Error(`Swap provider "${provider}" not configured`);
|
|
153
|
+
}
|
|
154
|
+
return named;
|
|
155
|
+
}
|
|
156
|
+
// Single provider — no routing needed
|
|
157
|
+
if (allProviders.length === 1) {
|
|
158
|
+
return allProviders[0];
|
|
159
|
+
}
|
|
160
|
+
// 2. defaultProvider with no routing strategy — always use it
|
|
161
|
+
if (this.settings?.defaultProvider && !this.settings.routing) {
|
|
162
|
+
const provider = this.providers[this.settings.defaultProvider];
|
|
163
|
+
if (provider)
|
|
164
|
+
return provider;
|
|
165
|
+
}
|
|
166
|
+
// 3. Match by market allowlist
|
|
167
|
+
for (const p of allProviders) {
|
|
168
|
+
if (p.isMarketSupported(assetIn, assetOut, chainId)) {
|
|
169
|
+
return p;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// 4. Match by chain support
|
|
173
|
+
for (const p of allProviders) {
|
|
174
|
+
if (p.isChainSupported(chainId)) {
|
|
175
|
+
return p;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return allProviders[0];
|
|
56
179
|
}
|
|
57
180
|
}
|
|
58
181
|
//# sourceMappingURL=BaseSwapNamespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/BaseSwapNamespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import { BaseSwapNamespace } from './BaseSwapNamespace.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SwapSettings } from '../../types/actions.js';
|
|
3
|
+
import type { SwapProviders, SwapQuote, SwapQuoteParams, SwapReceipt, WalletSwapParams } from '../../types/swap/index.js';
|
|
3
4
|
import type { Wallet } from '../../wallet/core/wallets/abstract/Wallet.js';
|
|
4
5
|
/**
|
|
5
|
-
* Wallet swap namespace
|
|
6
|
-
*
|
|
6
|
+
* Wallet swap namespace with full operations including signing.
|
|
7
|
+
* Provides getQuote() for pricing and execute() for swapping tokens.
|
|
7
8
|
*/
|
|
8
9
|
export declare class WalletSwapNamespace extends BaseSwapNamespace {
|
|
9
10
|
private readonly wallet;
|
|
10
|
-
constructor(providers: SwapProviders, wallet: Wallet);
|
|
11
|
+
constructor(providers: SwapProviders, wallet: Wallet, settings?: SwapSettings);
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* Get a swap quote with the wallet address as recipient.
|
|
14
|
+
* Ensures calldata is encoded for the real wallet, not a placeholder.
|
|
15
|
+
*/
|
|
16
|
+
getQuote(params: SwapQuoteParams): Promise<SwapQuote>;
|
|
17
|
+
/**
|
|
18
|
+
* Get quotes from all providers with the wallet address as recipient.
|
|
19
|
+
*/
|
|
20
|
+
getQuotes(params: SwapQuoteParams): Promise<SwapQuote[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Execute a token swap.
|
|
23
|
+
* Accepts either raw params (re-quotes internally) or a pre-built SwapQuote (skips re-quoting).
|
|
24
|
+
* @param params - Swap parameters or a pre-built SwapQuote from getQuote()
|
|
14
25
|
* @returns Swap receipt with transaction details
|
|
15
26
|
*/
|
|
16
|
-
execute(params: WalletSwapParams): Promise<SwapReceipt>;
|
|
27
|
+
execute(params: WalletSwapParams | SwapQuote): Promise<SwapReceipt>;
|
|
28
|
+
private buildReceipt;
|
|
17
29
|
/**
|
|
18
30
|
* Execute swap transaction with approval batching
|
|
19
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WalletSwapNamespace.d.ts","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EAEX,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AAEtE;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IAGtD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,SAAS,EAAE,aAAa,EACP,MAAM,EAAE,MAAM,EAC/B,QAAQ,CAAC,EAAE,YAAY;IAKzB;;;OAGG;IACY,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAOpE;;OAEG;IACY,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAOvE;;;;;OAKG;IACG,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBzE,OAAO,CAAC,YAAY;IAiBpB;;OAEG;YACW,kBAAkB;CA0BjC"}
|
|
@@ -1,33 +1,57 @@
|
|
|
1
|
+
import { QUOTE_DISCRIMINATOR } from '../core/SwapProvider.js';
|
|
1
2
|
import { BaseSwapNamespace } from './BaseSwapNamespace.js';
|
|
2
3
|
/**
|
|
3
|
-
* Wallet swap namespace
|
|
4
|
-
*
|
|
4
|
+
* Wallet swap namespace with full operations including signing.
|
|
5
|
+
* Provides getQuote() for pricing and execute() for swapping tokens.
|
|
5
6
|
*/
|
|
6
7
|
export class WalletSwapNamespace extends BaseSwapNamespace {
|
|
7
|
-
constructor(providers, wallet) {
|
|
8
|
-
super(providers);
|
|
8
|
+
constructor(providers, wallet, settings) {
|
|
9
|
+
super(providers, settings);
|
|
9
10
|
this.wallet = wallet;
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @returns Swap receipt with transaction details
|
|
13
|
+
* Get a swap quote with the wallet address as recipient.
|
|
14
|
+
* Ensures calldata is encoded for the real wallet, not a placeholder.
|
|
15
15
|
*/
|
|
16
|
-
async
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
async getQuote(params) {
|
|
17
|
+
return super.getQuote({
|
|
18
|
+
...params,
|
|
19
|
+
recipient: params.recipient ?? this.wallet.address,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get quotes from all providers with the wallet address as recipient.
|
|
24
|
+
*/
|
|
25
|
+
async getQuotes(params) {
|
|
26
|
+
return super.getQuotes({
|
|
20
27
|
...params,
|
|
21
|
-
|
|
28
|
+
recipient: params.recipient ?? this.wallet.address,
|
|
22
29
|
});
|
|
23
|
-
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Execute a token swap.
|
|
33
|
+
* Accepts either raw params (re-quotes internally) or a pre-built SwapQuote (skips re-quoting).
|
|
34
|
+
* @param params - Swap parameters or a pre-built SwapQuote from getQuote()
|
|
35
|
+
* @returns Swap receipt with transaction details
|
|
36
|
+
*/
|
|
37
|
+
async execute(params) {
|
|
38
|
+
// Inject walletAddress — raw params need it for validation,
|
|
39
|
+
// quotes need it for on-chain allowance checks during approval building
|
|
40
|
+
const executeParams = QUOTE_DISCRIMINATOR in params
|
|
41
|
+
? { ...params, recipient: this.wallet.address }
|
|
42
|
+
: { ...params, walletAddress: this.wallet.address };
|
|
43
|
+
const provider = this.resolveProvider(params.provider, params.assetIn, params.assetOut, params.chainId);
|
|
44
|
+
const swapTx = await provider.execute(executeParams);
|
|
24
45
|
const receipt = await this.executeTransaction(swapTx, params.chainId);
|
|
46
|
+
return this.buildReceipt(swapTx, receipt);
|
|
47
|
+
}
|
|
48
|
+
buildReceipt(swapTx, receipt) {
|
|
25
49
|
return {
|
|
26
50
|
receipt,
|
|
27
51
|
amountIn: swapTx.amountIn,
|
|
28
52
|
amountOut: swapTx.amountOut,
|
|
29
|
-
|
|
30
|
-
|
|
53
|
+
amountInRaw: swapTx.amountInRaw,
|
|
54
|
+
amountOutRaw: swapTx.amountOutRaw,
|
|
31
55
|
assetIn: swapTx.assetIn,
|
|
32
56
|
assetOut: swapTx.assetOut,
|
|
33
57
|
price: swapTx.price,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"WalletSwapNamespace.js","sourceRoot":"","sources":["../../../src/swap/namespaces/WalletSwapNamespace.ts"],"names":[],"mappings":"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"}
|