@eth-optimism/actions-sdk 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__mocks__/MockAssets.d.ts.map +1 -1
- package/dist/__mocks__/MockAssets.js +2 -0
- package/dist/__mocks__/MockAssets.js.map +1 -1
- package/dist/__tests__/actions.test.js +0 -4
- package/dist/__tests__/actions.test.js.map +1 -1
- package/dist/actions.d.ts +20 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +37 -13
- package/dist/actions.js.map +1 -1
- package/dist/constants/assets.d.ts +4 -0
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +15 -0
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/contracts.d.ts +4 -0
- package/dist/constants/contracts.d.ts.map +1 -0
- package/dist/constants/contracts.js +3 -0
- package/dist/constants/contracts.js.map +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lend/core/LendProvider.d.ts +0 -6
- package/dist/lend/core/LendProvider.d.ts.map +1 -1
- package/dist/lend/core/LendProvider.js +6 -15
- package/dist/lend/core/LendProvider.js.map +1 -1
- package/dist/lend/core/__tests__/LendProvider.test.js +2 -4
- package/dist/lend/core/__tests__/LendProvider.test.js.map +1 -1
- package/dist/lend/providers/morpho/__tests__/sdk.test.js +3 -2
- package/dist/lend/providers/morpho/__tests__/sdk.test.js.map +1 -1
- package/dist/lend/providers/morpho/api.d.ts +4 -0
- package/dist/lend/providers/morpho/api.d.ts.map +1 -1
- package/dist/lend/providers/morpho/api.js.map +1 -1
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +10 -1
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/supported/tokens.d.ts.map +1 -1
- package/dist/supported/tokens.js +9 -2
- package/dist/supported/tokens.js.map +1 -1
- package/dist/swap/__mocks__/MockSwapProvider.d.ts +38 -0
- package/dist/swap/__mocks__/MockSwapProvider.d.ts.map +1 -0
- package/dist/swap/__mocks__/MockSwapProvider.js +138 -0
- package/dist/swap/__mocks__/MockSwapProvider.js.map +1 -0
- package/dist/swap/core/SwapProvider.d.ts +56 -0
- package/dist/swap/core/SwapProvider.d.ts.map +1 -0
- package/dist/swap/core/SwapProvider.js +177 -0
- package/dist/swap/core/SwapProvider.js.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts +2 -0
- package/dist/swap/core/__tests__/SwapProvider.test.d.ts.map +1 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js +329 -0
- package/dist/swap/core/__tests__/SwapProvider.test.js.map +1 -0
- package/dist/swap/index.d.ts +7 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js +8 -0
- package/dist/swap/namespaces/ActionsSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts +33 -0
- package/dist/swap/namespaces/BaseSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js +58 -0
- package/dist/swap/namespaces/BaseSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts +22 -0
- package/dist/swap/namespaces/WalletSwapNamespace.d.ts.map +1 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js +60 -0
- package/dist/swap/namespaces/WalletSwapNamespace.js.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js +106 -0
- package/dist/swap/namespaces/__tests__/BaseSwapNamespace.spec.js.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts +2 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.d.ts.map +1 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js +132 -0
- package/dist/swap/namespaces/__tests__/WalletSwapNamespace.spec.js.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts +68 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js +206 -0
- package/dist/swap/providers/uniswap/UniswapSwapProvider.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js +257 -0
- package/dist/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.js.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts +2 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js +312 -0
- package/dist/swap/providers/uniswap/__tests__/sdk.test.js.map +1 -0
- package/dist/swap/providers/uniswap/abis.d.ts +227 -0
- package/dist/swap/providers/uniswap/abis.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/abis.js +138 -0
- package/dist/swap/providers/uniswap/abis.js.map +1 -0
- package/dist/swap/providers/uniswap/addresses.d.ts +21 -0
- package/dist/swap/providers/uniswap/addresses.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/addresses.js +81 -0
- package/dist/swap/providers/uniswap/addresses.js.map +1 -0
- package/dist/swap/providers/uniswap/encoding.d.ts +77 -0
- package/dist/swap/providers/uniswap/encoding.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/encoding.js +233 -0
- package/dist/swap/providers/uniswap/encoding.js.map +1 -0
- package/dist/swap/providers/uniswap/types.d.ts +20 -0
- package/dist/swap/providers/uniswap/types.d.ts.map +1 -0
- package/dist/swap/providers/uniswap/types.js +2 -0
- package/dist/swap/providers/uniswap/types.js.map +1 -0
- package/dist/types/actions.d.ts +19 -5
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/lend/base.d.ts +3 -13
- package/dist/types/lend/base.d.ts.map +1 -1
- package/dist/types/lend/base.js.map +1 -1
- package/dist/types/swap/base.d.ts +238 -0
- package/dist/types/swap/base.d.ts.map +1 -0
- package/dist/types/swap/base.js +4 -0
- package/dist/types/swap/base.js.map +1 -0
- package/dist/types/swap/index.d.ts +2 -0
- package/dist/types/swap/index.d.ts.map +1 -0
- package/dist/types/swap/index.js +2 -0
- package/dist/types/swap/index.js.map +1 -0
- package/dist/types/transaction.d.ts +14 -0
- package/dist/types/transaction.d.ts.map +1 -0
- package/dist/types/transaction.js +2 -0
- package/dist/types/transaction.js.map +1 -0
- package/dist/utils/assets.d.ts +4 -5
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +4 -11
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/assets.test.js +13 -1
- package/dist/utils/assets.test.js.map +1 -1
- package/dist/utils/permit2.d.ts +46 -0
- package/dist/utils/permit2.d.ts.map +1 -0
- package/dist/utils/permit2.js +100 -0
- package/dist/utils/permit2.js.map +1 -0
- package/dist/utils/permit2.test.d.ts +2 -0
- package/dist/utils/permit2.test.d.ts.map +1 -0
- package/dist/utils/permit2.test.js +110 -0
- package/dist/utils/permit2.test.js.map +1 -0
- package/dist/utils/validation.d.ts +12 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +44 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts +7 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js +2 -1
- package/dist/wallet/core/providers/hosted/abstract/HostedWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts +5 -1
- package/dist/wallet/core/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts +7 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.d.ts.map +1 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js +5 -1
- package/dist/wallet/core/providers/smart/default/DefaultSmartWalletProvider.js.map +1 -1
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js +2 -2
- package/dist/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts +13 -2
- package/dist/wallet/core/wallets/abstract/Wallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js +7 -1
- package/dist/wallet/core/wallets/abstract/Wallet.js.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts +7 -2
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.d.ts.map +1 -1
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js +6 -5
- package/dist/wallet/core/wallets/smart/default/DefaultSmartWallet.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +3 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +4 -3
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +5 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +4 -2
- package/dist/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +6 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +4 -3
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts +7 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js +6 -2
- package/dist/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js +1 -0
- package/dist/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +6 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js +5 -2
- package/dist/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +1 -0
- package/dist/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts +6 -3
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js +5 -4
- package/dist/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js +6 -6
- package/dist/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts +7 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js +5 -3
- package/dist/wallet/react/wallets/hosted/dynamic/DynamicWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts +5 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js +3 -3
- package/dist/wallet/react/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts +5 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.d.ts.map +1 -1
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js +2 -2
- package/dist/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.js.map +1 -1
- package/package.json +2 -2
- package/src/__mocks__/MockAssets.ts +2 -0
- package/src/__tests__/actions.test.ts +0 -4
- package/src/actions.ts +57 -19
- package/src/constants/assets.ts +16 -0
- package/src/constants/contracts.ts +5 -0
- package/src/index.ts +30 -2
- package/src/lend/core/LendProvider.ts +6 -18
- package/src/lend/core/__tests__/LendProvider.test.ts +2 -5
- package/src/lend/providers/morpho/__tests__/sdk.test.ts +3 -2
- package/src/lend/providers/morpho/api.ts +4 -0
- package/src/lend/providers/morpho/sdk.ts +10 -1
- package/src/supported/tokens.ts +16 -2
- package/src/swap/__mocks__/MockSwapProvider.ts +216 -0
- package/src/swap/core/SwapProvider.ts +319 -0
- package/src/swap/core/__tests__/SwapProvider.test.ts +478 -0
- package/src/swap/index.ts +14 -0
- package/src/swap/namespaces/ActionsSwapNamespace.ts +7 -0
- package/src/swap/namespaces/BaseSwapNamespace.ts +77 -0
- package/src/swap/namespaces/WalletSwapNamespace.ts +82 -0
- package/src/swap/namespaces/__tests__/BaseSwapNamespace.spec.ts +138 -0
- package/src/swap/namespaces/__tests__/WalletSwapNamespace.spec.ts +162 -0
- package/src/swap/providers/uniswap/UniswapSwapProvider.ts +304 -0
- package/src/swap/providers/uniswap/__tests__/UniswapSwapProvider.test.ts +299 -0
- package/src/swap/providers/uniswap/__tests__/sdk.test.ts +370 -0
- package/src/swap/providers/uniswap/abis.ts +144 -0
- package/src/swap/providers/uniswap/addresses.ts +108 -0
- package/src/swap/providers/uniswap/encoding.ts +406 -0
- package/src/swap/providers/uniswap/types.ts +24 -0
- package/src/types/actions.ts +22 -6
- package/src/types/index.ts +2 -0
- package/src/types/lend/base.ts +4 -14
- package/src/types/swap/base.ts +259 -0
- package/src/types/swap/index.ts +1 -0
- package/src/types/transaction.ts +14 -0
- package/src/utils/assets.test.ts +16 -1
- package/src/utils/assets.ts +13 -10
- package/src/utils/permit2.test.ts +142 -0
- package/src/utils/permit2.ts +144 -0
- package/src/utils/validation.ts +76 -0
- package/src/wallet/core/providers/hosted/abstract/HostedWalletProvider.ts +9 -1
- package/src/wallet/core/providers/hosted/types/index.ts +5 -1
- package/src/wallet/core/providers/smart/default/DefaultSmartWalletProvider.ts +13 -1
- package/src/wallet/core/providers/smart/default/__tests__/DefaultSmartWalletProvider.spec.ts +2 -0
- package/src/wallet/core/wallets/abstract/Wallet.ts +18 -2
- package/src/wallet/core/wallets/smart/default/DefaultSmartWallet.ts +14 -5
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +13 -2
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +10 -2
- package/src/wallet/node/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +8 -2
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +11 -2
- package/src/wallet/node/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
- package/src/wallet/react/providers/hosted/dynamic/DynamicHostedWalletProvider.ts +10 -2
- package/src/wallet/react/providers/hosted/dynamic/__tests__/DynamicHostedWalletProvider.spec.ts +1 -0
- package/src/wallet/react/providers/hosted/privy/PrivyHostedWalletProvider.ts +9 -2
- package/src/wallet/react/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +1 -0
- package/src/wallet/react/providers/hosted/turnkey/TurnkeyHostedWalletProvider.ts +9 -4
- package/src/wallet/react/providers/registry/ReactHostedWalletProviderRegistry.ts +18 -6
- package/src/wallet/react/wallets/hosted/dynamic/DynamicWallet.ts +12 -2
- package/src/wallet/react/wallets/hosted/privy/PrivyWallet.ts +10 -2
- package/src/wallet/react/wallets/hosted/turnkey/TurnkeyWallet.ts +10 -2
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V4 Quoter ABI (subset for quoting)
|
|
3
|
+
* @see https://docs.uniswap.org/contracts/v4/reference/periphery/interfaces/IQuoter
|
|
4
|
+
*/
|
|
5
|
+
export declare const QUOTER_ABI: readonly [{
|
|
6
|
+
readonly name: "quoteExactInputSingle";
|
|
7
|
+
readonly type: "function";
|
|
8
|
+
readonly stateMutability: "nonpayable";
|
|
9
|
+
readonly inputs: readonly [{
|
|
10
|
+
readonly name: "params";
|
|
11
|
+
readonly type: "tuple";
|
|
12
|
+
readonly components: readonly [{
|
|
13
|
+
readonly name: "poolKey";
|
|
14
|
+
readonly type: "tuple";
|
|
15
|
+
readonly components: readonly [{
|
|
16
|
+
readonly name: "currency0";
|
|
17
|
+
readonly type: "address";
|
|
18
|
+
}, {
|
|
19
|
+
readonly name: "currency1";
|
|
20
|
+
readonly type: "address";
|
|
21
|
+
}, {
|
|
22
|
+
readonly name: "fee";
|
|
23
|
+
readonly type: "uint24";
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "tickSpacing";
|
|
26
|
+
readonly type: "int24";
|
|
27
|
+
}, {
|
|
28
|
+
readonly name: "hooks";
|
|
29
|
+
readonly type: "address";
|
|
30
|
+
}];
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "zeroForOne";
|
|
33
|
+
readonly type: "bool";
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "exactAmount";
|
|
36
|
+
readonly type: "uint128";
|
|
37
|
+
}, {
|
|
38
|
+
readonly name: "hookData";
|
|
39
|
+
readonly type: "bytes";
|
|
40
|
+
}];
|
|
41
|
+
}];
|
|
42
|
+
readonly outputs: readonly [{
|
|
43
|
+
readonly name: "amountOut";
|
|
44
|
+
readonly type: "uint256";
|
|
45
|
+
}, {
|
|
46
|
+
readonly name: "gasEstimate";
|
|
47
|
+
readonly type: "uint256";
|
|
48
|
+
}];
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "quoteExactOutputSingle";
|
|
51
|
+
readonly type: "function";
|
|
52
|
+
readonly stateMutability: "nonpayable";
|
|
53
|
+
readonly inputs: readonly [{
|
|
54
|
+
readonly name: "params";
|
|
55
|
+
readonly type: "tuple";
|
|
56
|
+
readonly components: readonly [{
|
|
57
|
+
readonly name: "poolKey";
|
|
58
|
+
readonly type: "tuple";
|
|
59
|
+
readonly components: readonly [{
|
|
60
|
+
readonly name: "currency0";
|
|
61
|
+
readonly type: "address";
|
|
62
|
+
}, {
|
|
63
|
+
readonly name: "currency1";
|
|
64
|
+
readonly type: "address";
|
|
65
|
+
}, {
|
|
66
|
+
readonly name: "fee";
|
|
67
|
+
readonly type: "uint24";
|
|
68
|
+
}, {
|
|
69
|
+
readonly name: "tickSpacing";
|
|
70
|
+
readonly type: "int24";
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "hooks";
|
|
73
|
+
readonly type: "address";
|
|
74
|
+
}];
|
|
75
|
+
}, {
|
|
76
|
+
readonly name: "zeroForOne";
|
|
77
|
+
readonly type: "bool";
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "exactAmount";
|
|
80
|
+
readonly type: "uint128";
|
|
81
|
+
}, {
|
|
82
|
+
readonly name: "hookData";
|
|
83
|
+
readonly type: "bytes";
|
|
84
|
+
}];
|
|
85
|
+
}];
|
|
86
|
+
readonly outputs: readonly [{
|
|
87
|
+
readonly name: "amountIn";
|
|
88
|
+
readonly type: "uint256";
|
|
89
|
+
}, {
|
|
90
|
+
readonly name: "gasEstimate";
|
|
91
|
+
readonly type: "uint256";
|
|
92
|
+
}];
|
|
93
|
+
}];
|
|
94
|
+
/**
|
|
95
|
+
* Universal Router ABI (subset for swaps)
|
|
96
|
+
* @see https://docs.uniswap.org/contracts/v4/reference/periphery/UniversalRouter
|
|
97
|
+
*/
|
|
98
|
+
export declare const UNIVERSAL_ROUTER_ABI: readonly [{
|
|
99
|
+
readonly name: "execute";
|
|
100
|
+
readonly type: "function";
|
|
101
|
+
readonly stateMutability: "payable";
|
|
102
|
+
readonly inputs: readonly [{
|
|
103
|
+
readonly name: "commands";
|
|
104
|
+
readonly type: "bytes";
|
|
105
|
+
}, {
|
|
106
|
+
readonly name: "inputs";
|
|
107
|
+
readonly type: "bytes[]";
|
|
108
|
+
}, {
|
|
109
|
+
readonly name: "deadline";
|
|
110
|
+
readonly type: "uint256";
|
|
111
|
+
}];
|
|
112
|
+
readonly outputs: readonly [];
|
|
113
|
+
}];
|
|
114
|
+
/** ABI type for ExactInputSingleParams */
|
|
115
|
+
export declare const EXACT_INPUT_SINGLE_PARAMS: readonly [{
|
|
116
|
+
readonly type: "tuple";
|
|
117
|
+
readonly components: readonly [{
|
|
118
|
+
readonly name: "poolKey";
|
|
119
|
+
readonly type: "tuple";
|
|
120
|
+
readonly components: readonly [{
|
|
121
|
+
readonly name: "currency0";
|
|
122
|
+
readonly type: "address";
|
|
123
|
+
}, {
|
|
124
|
+
readonly name: "currency1";
|
|
125
|
+
readonly type: "address";
|
|
126
|
+
}, {
|
|
127
|
+
readonly name: "fee";
|
|
128
|
+
readonly type: "uint24";
|
|
129
|
+
}, {
|
|
130
|
+
readonly name: "tickSpacing";
|
|
131
|
+
readonly type: "int24";
|
|
132
|
+
}, {
|
|
133
|
+
readonly name: "hooks";
|
|
134
|
+
readonly type: "address";
|
|
135
|
+
}];
|
|
136
|
+
}, {
|
|
137
|
+
readonly name: "zeroForOne";
|
|
138
|
+
readonly type: "bool";
|
|
139
|
+
}, {
|
|
140
|
+
readonly name: "amountIn";
|
|
141
|
+
readonly type: "uint128";
|
|
142
|
+
}, {
|
|
143
|
+
readonly name: "amountOutMinimum";
|
|
144
|
+
readonly type: "uint128";
|
|
145
|
+
}, {
|
|
146
|
+
readonly name: "hookData";
|
|
147
|
+
readonly type: "bytes";
|
|
148
|
+
}];
|
|
149
|
+
}];
|
|
150
|
+
/** ABI type for ExactOutputSingleParams */
|
|
151
|
+
export declare const EXACT_OUTPUT_SINGLE_PARAMS: readonly [{
|
|
152
|
+
readonly type: "tuple";
|
|
153
|
+
readonly components: readonly [{
|
|
154
|
+
readonly name: "poolKey";
|
|
155
|
+
readonly type: "tuple";
|
|
156
|
+
readonly components: readonly [{
|
|
157
|
+
readonly name: "currency0";
|
|
158
|
+
readonly type: "address";
|
|
159
|
+
}, {
|
|
160
|
+
readonly name: "currency1";
|
|
161
|
+
readonly type: "address";
|
|
162
|
+
}, {
|
|
163
|
+
readonly name: "fee";
|
|
164
|
+
readonly type: "uint24";
|
|
165
|
+
}, {
|
|
166
|
+
readonly name: "tickSpacing";
|
|
167
|
+
readonly type: "int24";
|
|
168
|
+
}, {
|
|
169
|
+
readonly name: "hooks";
|
|
170
|
+
readonly type: "address";
|
|
171
|
+
}];
|
|
172
|
+
}, {
|
|
173
|
+
readonly name: "zeroForOne";
|
|
174
|
+
readonly type: "bool";
|
|
175
|
+
}, {
|
|
176
|
+
readonly name: "amountOut";
|
|
177
|
+
readonly type: "uint128";
|
|
178
|
+
}, {
|
|
179
|
+
readonly name: "amountInMaximum";
|
|
180
|
+
readonly type: "uint128";
|
|
181
|
+
}, {
|
|
182
|
+
readonly name: "hookData";
|
|
183
|
+
readonly type: "bytes";
|
|
184
|
+
}];
|
|
185
|
+
}];
|
|
186
|
+
/** ABI type for SETTLE_ALL / TAKE_ALL params */
|
|
187
|
+
export declare const CURRENCY_AMOUNT_PARAMS: readonly [{
|
|
188
|
+
readonly type: "address";
|
|
189
|
+
}, {
|
|
190
|
+
readonly type: "uint256";
|
|
191
|
+
}];
|
|
192
|
+
/**
|
|
193
|
+
* PoolManager extsload ABI — reads arbitrary storage slots via SLOAD
|
|
194
|
+
* @see https://docs.uniswap.org/contracts/v4/guides/read-pool-state
|
|
195
|
+
*/
|
|
196
|
+
export declare const EXTSLOAD_ABI: readonly [{
|
|
197
|
+
readonly name: "extsload";
|
|
198
|
+
readonly type: "function";
|
|
199
|
+
readonly stateMutability: "view";
|
|
200
|
+
readonly inputs: readonly [{
|
|
201
|
+
readonly name: "slot";
|
|
202
|
+
readonly type: "bytes32";
|
|
203
|
+
}];
|
|
204
|
+
readonly outputs: readonly [{
|
|
205
|
+
readonly type: "bytes32";
|
|
206
|
+
}];
|
|
207
|
+
}];
|
|
208
|
+
/**
|
|
209
|
+
* PoolKey ABI encoding type for computing PoolId
|
|
210
|
+
*/
|
|
211
|
+
export declare const POOL_KEY_ABI_TYPE: readonly [{
|
|
212
|
+
readonly name: "currency0";
|
|
213
|
+
readonly type: "address";
|
|
214
|
+
}, {
|
|
215
|
+
readonly name: "currency1";
|
|
216
|
+
readonly type: "address";
|
|
217
|
+
}, {
|
|
218
|
+
readonly name: "fee";
|
|
219
|
+
readonly type: "uint24";
|
|
220
|
+
}, {
|
|
221
|
+
readonly name: "tickSpacing";
|
|
222
|
+
readonly type: "int24";
|
|
223
|
+
}, {
|
|
224
|
+
readonly name: "hooks";
|
|
225
|
+
readonly type: "address";
|
|
226
|
+
}];
|
|
227
|
+
//# sourceMappingURL=abis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abis.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/abis.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Cb,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAYvB,CAAA;AAEV,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAA;AAEV,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAA;AAEV,gDAAgD;AAChD,eAAO,MAAM,sBAAsB;;;;EAGzB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;EAQf,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAMpB,CAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PoolKey tuple components (shared across V4 ABI definitions)
|
|
3
|
+
*/
|
|
4
|
+
const POOL_KEY_COMPONENTS = [
|
|
5
|
+
{ name: 'currency0', type: 'address' },
|
|
6
|
+
{ name: 'currency1', type: 'address' },
|
|
7
|
+
{ name: 'fee', type: 'uint24' },
|
|
8
|
+
{ name: 'tickSpacing', type: 'int24' },
|
|
9
|
+
{ name: 'hooks', type: 'address' },
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* V4 Quoter ABI (subset for quoting)
|
|
13
|
+
* @see https://docs.uniswap.org/contracts/v4/reference/periphery/interfaces/IQuoter
|
|
14
|
+
*/
|
|
15
|
+
export const QUOTER_ABI = [
|
|
16
|
+
{
|
|
17
|
+
name: 'quoteExactInputSingle',
|
|
18
|
+
type: 'function',
|
|
19
|
+
stateMutability: 'nonpayable',
|
|
20
|
+
inputs: [
|
|
21
|
+
{
|
|
22
|
+
name: 'params',
|
|
23
|
+
type: 'tuple',
|
|
24
|
+
components: [
|
|
25
|
+
{ name: 'poolKey', type: 'tuple', components: POOL_KEY_COMPONENTS },
|
|
26
|
+
{ name: 'zeroForOne', type: 'bool' },
|
|
27
|
+
{ name: 'exactAmount', type: 'uint128' },
|
|
28
|
+
{ name: 'hookData', type: 'bytes' },
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
outputs: [
|
|
33
|
+
{ name: 'amountOut', type: 'uint256' },
|
|
34
|
+
{ name: 'gasEstimate', type: 'uint256' },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'quoteExactOutputSingle',
|
|
39
|
+
type: 'function',
|
|
40
|
+
stateMutability: 'nonpayable',
|
|
41
|
+
inputs: [
|
|
42
|
+
{
|
|
43
|
+
name: 'params',
|
|
44
|
+
type: 'tuple',
|
|
45
|
+
components: [
|
|
46
|
+
{ name: 'poolKey', type: 'tuple', components: POOL_KEY_COMPONENTS },
|
|
47
|
+
{ name: 'zeroForOne', type: 'bool' },
|
|
48
|
+
{ name: 'exactAmount', type: 'uint128' },
|
|
49
|
+
{ name: 'hookData', type: 'bytes' },
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
outputs: [
|
|
54
|
+
{ name: 'amountIn', type: 'uint256' },
|
|
55
|
+
{ name: 'gasEstimate', type: 'uint256' },
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Universal Router ABI (subset for swaps)
|
|
61
|
+
* @see https://docs.uniswap.org/contracts/v4/reference/periphery/UniversalRouter
|
|
62
|
+
*/
|
|
63
|
+
export const UNIVERSAL_ROUTER_ABI = [
|
|
64
|
+
{
|
|
65
|
+
name: 'execute',
|
|
66
|
+
type: 'function',
|
|
67
|
+
stateMutability: 'payable',
|
|
68
|
+
inputs: [
|
|
69
|
+
{ name: 'commands', type: 'bytes' },
|
|
70
|
+
{ name: 'inputs', type: 'bytes[]' },
|
|
71
|
+
{ name: 'deadline', type: 'uint256' },
|
|
72
|
+
],
|
|
73
|
+
outputs: [],
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
/** ABI type for ExactInputSingleParams */
|
|
77
|
+
export const EXACT_INPUT_SINGLE_PARAMS = [
|
|
78
|
+
{
|
|
79
|
+
type: 'tuple',
|
|
80
|
+
components: [
|
|
81
|
+
{
|
|
82
|
+
name: 'poolKey',
|
|
83
|
+
type: 'tuple',
|
|
84
|
+
components: [...POOL_KEY_COMPONENTS],
|
|
85
|
+
},
|
|
86
|
+
{ name: 'zeroForOne', type: 'bool' },
|
|
87
|
+
{ name: 'amountIn', type: 'uint128' },
|
|
88
|
+
{ name: 'amountOutMinimum', type: 'uint128' },
|
|
89
|
+
{ name: 'hookData', type: 'bytes' },
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
/** ABI type for ExactOutputSingleParams */
|
|
94
|
+
export const EXACT_OUTPUT_SINGLE_PARAMS = [
|
|
95
|
+
{
|
|
96
|
+
type: 'tuple',
|
|
97
|
+
components: [
|
|
98
|
+
{
|
|
99
|
+
name: 'poolKey',
|
|
100
|
+
type: 'tuple',
|
|
101
|
+
components: [...POOL_KEY_COMPONENTS],
|
|
102
|
+
},
|
|
103
|
+
{ name: 'zeroForOne', type: 'bool' },
|
|
104
|
+
{ name: 'amountOut', type: 'uint128' },
|
|
105
|
+
{ name: 'amountInMaximum', type: 'uint128' },
|
|
106
|
+
{ name: 'hookData', type: 'bytes' },
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
/** ABI type for SETTLE_ALL / TAKE_ALL params */
|
|
111
|
+
export const CURRENCY_AMOUNT_PARAMS = [
|
|
112
|
+
{ type: 'address' },
|
|
113
|
+
{ type: 'uint256' },
|
|
114
|
+
];
|
|
115
|
+
/**
|
|
116
|
+
* PoolManager extsload ABI — reads arbitrary storage slots via SLOAD
|
|
117
|
+
* @see https://docs.uniswap.org/contracts/v4/guides/read-pool-state
|
|
118
|
+
*/
|
|
119
|
+
export const EXTSLOAD_ABI = [
|
|
120
|
+
{
|
|
121
|
+
name: 'extsload',
|
|
122
|
+
type: 'function',
|
|
123
|
+
stateMutability: 'view',
|
|
124
|
+
inputs: [{ name: 'slot', type: 'bytes32' }],
|
|
125
|
+
outputs: [{ type: 'bytes32' }],
|
|
126
|
+
},
|
|
127
|
+
];
|
|
128
|
+
/**
|
|
129
|
+
* PoolKey ABI encoding type for computing PoolId
|
|
130
|
+
*/
|
|
131
|
+
export const POOL_KEY_ABI_TYPE = [
|
|
132
|
+
{ name: 'currency0', type: 'address' },
|
|
133
|
+
{ name: 'currency1', type: 'address' },
|
|
134
|
+
{ name: 'fee', type: 'uint24' },
|
|
135
|
+
{ name: 'tickSpacing', type: 'int24' },
|
|
136
|
+
{ name: 'hooks', type: 'address' },
|
|
137
|
+
];
|
|
138
|
+
//# sourceMappingURL=abis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abis.js","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/abis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../constants/supportedChains.js';
|
|
3
|
+
/**
|
|
4
|
+
* Uniswap contract addresses
|
|
5
|
+
*/
|
|
6
|
+
export interface UniswapAddresses {
|
|
7
|
+
poolManager: Address;
|
|
8
|
+
positionManager: Address;
|
|
9
|
+
universalRouter: Address;
|
|
10
|
+
quoter: Address;
|
|
11
|
+
permit2: Address;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get Uniswap contract addresses for a chain
|
|
15
|
+
*/
|
|
16
|
+
export declare function getUniswapAddresses(chainId: SupportedChainId): UniswapAddresses;
|
|
17
|
+
/**
|
|
18
|
+
* Get supported chain IDs for Uniswap
|
|
19
|
+
*/
|
|
20
|
+
export declare function getSupportedChainIds(): SupportedChainId[];
|
|
21
|
+
//# sourceMappingURL=addresses.d.ts.map
|
|
@@ -0,0 +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;AAiED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAMlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { base, baseSepolia, mainnet, optimism, sepolia, unichain, unichainSepolia, worldchain, } from 'viem/chains';
|
|
2
|
+
import { PERMIT2_ADDRESS } from '../../../constants/contracts.js';
|
|
3
|
+
/**
|
|
4
|
+
* Uniswap V4 contract addresses per chain
|
|
5
|
+
* @see https://docs.uniswap.org/contracts/v4/deployments
|
|
6
|
+
*/
|
|
7
|
+
const UNISWAP_ADDRESSES = {
|
|
8
|
+
[mainnet.id]: {
|
|
9
|
+
poolManager: '0x000000000004444c5dc75cB358380D2e3dE08A90',
|
|
10
|
+
positionManager: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',
|
|
11
|
+
universalRouter: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
|
|
12
|
+
quoter: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',
|
|
13
|
+
permit2: PERMIT2_ADDRESS,
|
|
14
|
+
},
|
|
15
|
+
[optimism.id]: {
|
|
16
|
+
poolManager: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',
|
|
17
|
+
positionManager: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',
|
|
18
|
+
universalRouter: '0x851116d9223fabed8e56c0e6b8ad0c31d98b3507',
|
|
19
|
+
quoter: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',
|
|
20
|
+
permit2: PERMIT2_ADDRESS,
|
|
21
|
+
},
|
|
22
|
+
[base.id]: {
|
|
23
|
+
poolManager: '0x498581ff718922c3f8e6a244956af099b2652b2b',
|
|
24
|
+
positionManager: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',
|
|
25
|
+
universalRouter: '0x6ff5693b99212da76ad316178a184ab56d299b43',
|
|
26
|
+
quoter: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',
|
|
27
|
+
permit2: PERMIT2_ADDRESS,
|
|
28
|
+
},
|
|
29
|
+
[unichain.id]: {
|
|
30
|
+
poolManager: '0x1f98400000000000000000000000000000000004',
|
|
31
|
+
positionManager: '0x4529a01c7a0410167c5740c487a8de60232617bf',
|
|
32
|
+
universalRouter: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3',
|
|
33
|
+
quoter: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',
|
|
34
|
+
permit2: PERMIT2_ADDRESS,
|
|
35
|
+
},
|
|
36
|
+
[worldchain.id]: {
|
|
37
|
+
poolManager: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',
|
|
38
|
+
positionManager: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',
|
|
39
|
+
universalRouter: '0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743',
|
|
40
|
+
quoter: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',
|
|
41
|
+
permit2: PERMIT2_ADDRESS,
|
|
42
|
+
},
|
|
43
|
+
[sepolia.id]: {
|
|
44
|
+
poolManager: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',
|
|
45
|
+
positionManager: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',
|
|
46
|
+
universalRouter: '0x3A9D48AB9751398BbFa63ad67599Bb04e4BdF98b',
|
|
47
|
+
quoter: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',
|
|
48
|
+
permit2: PERMIT2_ADDRESS,
|
|
49
|
+
},
|
|
50
|
+
[baseSepolia.id]: {
|
|
51
|
+
poolManager: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',
|
|
52
|
+
positionManager: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',
|
|
53
|
+
universalRouter: '0x492e6456d9528771018deb9e87ef7750ef184104',
|
|
54
|
+
quoter: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',
|
|
55
|
+
permit2: PERMIT2_ADDRESS,
|
|
56
|
+
},
|
|
57
|
+
[unichainSepolia.id]: {
|
|
58
|
+
poolManager: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',
|
|
59
|
+
positionManager: '0xf969aee60879c54baaed9f3ed26147db216fd664',
|
|
60
|
+
universalRouter: '0xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d',
|
|
61
|
+
quoter: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',
|
|
62
|
+
permit2: PERMIT2_ADDRESS,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Get Uniswap contract addresses for a chain
|
|
67
|
+
*/
|
|
68
|
+
export function getUniswapAddresses(chainId) {
|
|
69
|
+
const addresses = UNISWAP_ADDRESSES[chainId];
|
|
70
|
+
if (!addresses) {
|
|
71
|
+
throw new Error(`Uniswap not supported on chain ${chainId}`);
|
|
72
|
+
}
|
|
73
|
+
return addresses;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get supported chain IDs for Uniswap
|
|
77
|
+
*/
|
|
78
|
+
export function getSupportedChainIds() {
|
|
79
|
+
return Object.keys(UNISWAP_ADDRESSES).map(Number);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=addresses.js.map
|
|
@@ -0,0 +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,GAAwD;IAC7E,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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { Address, Hex, PublicClient } from 'viem';
|
|
2
|
+
import type { SupportedChainId } from '../../../constants/supportedChains.js';
|
|
3
|
+
import type { Asset } from '../../../types/asset.js';
|
|
4
|
+
import type { SwapPrice } from '../../../types/swap/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Resolved V4 pool parameters
|
|
7
|
+
*/
|
|
8
|
+
interface ResolvedPoolParams {
|
|
9
|
+
tokenIn: Address;
|
|
10
|
+
tokenOut: Address;
|
|
11
|
+
zeroForOne: boolean;
|
|
12
|
+
poolKey: {
|
|
13
|
+
currency0: Address;
|
|
14
|
+
currency1: Address;
|
|
15
|
+
fee: number;
|
|
16
|
+
tickSpacing: number;
|
|
17
|
+
hooks: Address;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface GetQuoteParams {
|
|
21
|
+
assetIn: Asset;
|
|
22
|
+
assetOut: Asset;
|
|
23
|
+
amountInWei?: bigint;
|
|
24
|
+
amountOutWei?: bigint;
|
|
25
|
+
chainId: SupportedChainId;
|
|
26
|
+
publicClient: PublicClient;
|
|
27
|
+
quoterAddress: Address;
|
|
28
|
+
poolManagerAddress: Address;
|
|
29
|
+
/** Fee tier in pips (e.g. 100 = 0.01%) */
|
|
30
|
+
fee: number;
|
|
31
|
+
/** Tick spacing for the pool */
|
|
32
|
+
tickSpacing: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get a swap quote from the Quoter contract
|
|
36
|
+
*/
|
|
37
|
+
export declare function getQuote(params: GetQuoteParams): Promise<SwapPrice>;
|
|
38
|
+
export interface EncodeSwapParams {
|
|
39
|
+
amountInWei?: bigint;
|
|
40
|
+
amountOutWei?: bigint;
|
|
41
|
+
assetIn: Asset;
|
|
42
|
+
assetOut: Asset;
|
|
43
|
+
slippage: number;
|
|
44
|
+
deadline: number;
|
|
45
|
+
recipient: Address;
|
|
46
|
+
chainId: SupportedChainId;
|
|
47
|
+
quote: SwapPrice;
|
|
48
|
+
universalRouterAddress: Address;
|
|
49
|
+
/** Fee tier in pips (e.g. 100 = 0.01%) */
|
|
50
|
+
fee: number;
|
|
51
|
+
/** Tick spacing for the pool */
|
|
52
|
+
tickSpacing: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Encode Universal Router V4 swap calldata
|
|
56
|
+
* @description Builds calldata for executing a V4 swap through Universal Router
|
|
57
|
+
*/
|
|
58
|
+
export declare function encodeUniversalRouterSwap(params: EncodeSwapParams): Hex;
|
|
59
|
+
/**
|
|
60
|
+
* Read sqrtPriceX96 from a V4 pool via PoolManager.extsload (single SLOAD)
|
|
61
|
+
*/
|
|
62
|
+
export declare function getPoolSqrtPrice(params: {
|
|
63
|
+
publicClient: PublicClient;
|
|
64
|
+
poolManagerAddress: Address;
|
|
65
|
+
poolKey: ResolvedPoolParams['poolKey'];
|
|
66
|
+
}): Promise<bigint>;
|
|
67
|
+
/**
|
|
68
|
+
* Price impact as a decimal (0.03 = 3%). Returns 0 if unavailable.
|
|
69
|
+
*/
|
|
70
|
+
export declare function calculatePriceImpact(params: {
|
|
71
|
+
sqrtPriceX96: bigint;
|
|
72
|
+
amountIn: bigint;
|
|
73
|
+
amountOut: bigint;
|
|
74
|
+
zeroForOne: boolean;
|
|
75
|
+
}): number;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=encoding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../../../src/swap/providers/uniswap/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAStD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAUtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,uBAAuB,CAAA;AAUjE;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAA;QAClB,SAAS,EAAE,OAAO,CAAA;QAClB,GAAG,EAAE,MAAM,CAAA;QACX,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,OAAO,CAAA;KACf,CAAA;CACF;AAsCD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,gBAAgB,CAAA;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA2FzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,KAAK,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;IAChB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAA;IACX,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB;AAWD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAuFvE;AA2BD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,YAAY,EAAE,YAAY,CAAA;IAC1B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;CACvC,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,MAAM,CAqBT"}
|