From 6cf593cb96d9d94da1b4c32ef41dcf47df31658a Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Tue, 9 Dec 2025 11:45:33 +0000 Subject: [PATCH 01/13] refactor: V3 swap integration test with persistence. Direct Permit2 approvals only. --- test/anvil/anvil-global-setup.ts | 9 + .../swaps/v3/swap.integration.test.ts | 818 ++++++++++++++++++ test/entities/swaps/v3/swapTestData.json | 351 ++++++++ test/lib/utils/addresses.ts | 11 + test/lib/utils/index.ts | 1 + test/lib/utils/swapHelpers.ts | 92 +- test/lib/utils/swapTestDataHelpers.ts | 498 +++++++++++ 7 files changed, 1776 insertions(+), 4 deletions(-) create mode 100644 test/entities/swaps/v3/swap.integration.test.ts create mode 100644 test/entities/swaps/v3/swapTestData.json create mode 100644 test/lib/utils/swapTestDataHelpers.ts diff --git a/test/anvil/anvil-global-setup.ts b/test/anvil/anvil-global-setup.ts index dc1506be9..ad8826a0b 100644 --- a/test/anvil/anvil-global-setup.ts +++ b/test/anvil/anvil-global-setup.ts @@ -28,6 +28,7 @@ type NetworksWithFork = Extract< | 'HYPEREVM' | 'PLASMA' | 'X_LAYER' + | 'BASE' >; const ANVIL_PORTS: Record = { @@ -46,6 +47,7 @@ const ANVIL_PORTS: Record = { HYPEREVM: 9745, PLASMA: 9845, X_LAYER: 9945, + BASE: 10045, }; export const ANVIL_NETWORKS: Record = { @@ -134,6 +136,12 @@ export const ANVIL_NETWORKS: Record = { port: ANVIL_PORTS.X_LAYER, forkBlockNumber: 43138155n, }, + BASE: { + rpcEnv: 'BASE_RPC_URL', + fallBackRpc: 'https://base.drpc.org', + port: ANVIL_PORTS.BASE, + forkBlockNumber: 38940000n, + }, }; function getAnvilOptions( @@ -162,6 +170,7 @@ function getAnvilOptions( forkUrl, port, forkBlockNumber, + mnemonic: 'test test test test test test test test test test test junk', // Anvil's default mnemonic for deterministic accounts }; } diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts new file mode 100644 index 000000000..c1d25b584 --- /dev/null +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -0,0 +1,818 @@ +// pnpm test ./test/entities/swaps/v3/swap.integration.test.ts +import { config } from 'dotenv'; +config(); +import { + Address, + createTestClient, + http, + publicActions, + walletActions, + TestActions, + Hex, +} from 'viem'; +import { + CHAINS, + ChainId, + Path, + SwapKind, + Swap, + PERMIT2, + PublicWalletClient, + AddressProvider, + Slippage, + SwapBuildOutputExactIn, + SwapBuildOutputExactOut, + ExactOutQueryOutput, + ExactInQueryOutput, + MAX_UINT256, +} from '@/index'; + +import { + ANVIL_NETWORKS, + NetworkSetup, + startFork, + stopAnvilFork, +} from 'test/anvil/anvil-global-setup'; +import { TOKENS } from 'test/lib/utils/addresses'; +import { + approveSpenderOnPermit2, + approveSpenderOnTokens, + findTokenBalanceSlot, + setTokenBalances, +} from 'test/lib/utils/helper'; +import { + assertResultExactIn, + assertResultExactOut, + serializeQueryOutput, + deserializeQueryOutput, + serializeCallData, + loadSwapTestData, + saveSwapTestData, + allTestsHaveSavedData, + hasSavedTestData, +} from 'test/lib/utils'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { expect } from 'vitest'; + +// Get the directory of the current test file +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const swapTestDataPath = join(__dirname, 'swapTestData.json'); + +// Load existing test data (if file exists) +const savedSwapTestData = loadSwapTestData(swapTestDataPath); + +// Data collection for swap test call data (nested structure) +const swapTestData: Record = {}; + +// Test configuration constants +const TEST_CONSTANTS = { + ANVIL_TEST_ADDRESS: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', // Anvil's default test address from mnemonic "test test test test test test test test test test test junk" + BALANCE_MULTIPLIER: 10n, // For setting token balances + slippage: Slippage.fromPercentage('0.1'), + deadline: 999999999999999999n, + defaultOutputTest: { + testExactOutAmount: true, + percentage: 0, + }, + defaultInputTest: { + testExactInAmount: true, + percentage: 0, + }, +} as const; + +type NativePosition = 'input' | 'output' | 'none'; + +type Test = { + name: string; + chainId: ChainId; + anvilNetwork: NetworkSetup; + path: Path; + isNative: NativePosition; +}; + +const tests: Test[] = [ + { + name: 'Single Swap - WETH>USDC', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + ], + pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], // https://balancer.fi/pools/base/v3/0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7 + inputAmountRaw: 10000000000000000n, + outputAmountRaw: 100000000n, + }, + isNative: 'input', + }, + { + name: 'Single Swap - USDC>WETH', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + ], + pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], + inputAmountRaw: 1000000000n, + outputAmountRaw: 100000000000000000n, + }, + isNative: 'output', + }, + { + name: 'Single Swap - NOT NATIVE', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + ], + pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], + inputAmountRaw: 1000000000n, + outputAmountRaw: 100000000000000000n, + }, + isNative: 'none', + }, +]; +// ============================================================================ +// Tests +// ============================================================================ + +for (const test of tests) { + describe.sequential(test.name, () => { + let snapshotPreApprove: Hex | undefined; + let fork: { rpcUrl: string } | undefined; + let client: (PublicWalletClient & TestActions) | undefined; + const testAddress = TEST_CONSTANTS.ANVIL_TEST_ADDRESS; + const routerAddress = + test.path.pools.length > 1 + ? AddressProvider.BatchRouter(test.chainId) + : AddressProvider.Router(test.chainId); + + beforeAll(async () => { + // Only run fork/client setup if at least one test doesn't have saved data + if (!allTestsHaveSavedData(test, savedSwapTestData)) { + const setup = await setupForkAndClient(test); + fork = setup.fork; + client = setup.client; + snapshotPreApprove = setup.snapshotPreApprove; + } + }); + if (test.isNative === 'input') { + describe.sequential('native input', () => { + it('should handle GivenIn swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + }); + }); + it('should handle GivenOut swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + }); + }); + }); + } + describe.sequential('permit2 direct approval', () => { + beforeAll(async () => { + // Only run if fork/client were initialized + if (client && fork && snapshotPreApprove) { + snapshotPreApprove = await setupPermit2Approval( + client, + testAddress, + test.path, + routerAddress, + snapshotPreApprove, + ); + } + }); + + if (test.isNative === 'output') { + describe.sequential('native output', () => { + it('should handle GivenIn swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'native output', + }); + }); + it('should handle GivenOut swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'native output', + }); + }); + }); + } + + describe.sequential('token output', () => { + it('should handle GivenIn swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: false, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'token output', + }); + }); + + it('should handle GivenOut swap', async () => { + await testSwap({ + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: false, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'token output', + }); + }); + }); + }); + afterAll(async () => { + // Only stop fork if it was started + if (fork) { + console.log('stopFork', test.name); + await stopAnvilFork(test.anvilNetwork); + } + }); + }); +} + +// Write swap test data to JSON file after all tests complete +afterAll(async () => { + await saveSwapTestData(swapTestDataPath, savedSwapTestData, swapTestData); +}); + +// ============================================================================ +// Helper Functions +// ============================================================================ + +// ---------------------------------------------------------------------------- +// Test Data Access Helpers +// ---------------------------------------------------------------------------- + +/** + * Gets test data from the nested structure. + * @param savedData - The saved test data (nested structure) + * @param testName - Name of the test case + * @param context - Test context (e.g., 'native input', 'permit2 direct approval') + * @param subContext - Optional sub-context (e.g., 'native output', 'token output') + * @param swapKind - The swap kind being tested + * @returns The test data if found, undefined otherwise + */ +function getTestData( + savedData: Record, + testName: string, + context: string, + subContext: string | undefined, + swapKind: SwapKind, +): unknown { + const testData = savedData[testName]; + if (!testData || typeof testData !== 'object') { + return undefined; + } + + const testDataObj = testData as Record; + const contextData = testDataObj[context]; + if (!contextData || typeof contextData !== 'object') { + return undefined; + } + + const contextDataObj = contextData as Record; + + // If subContext is provided, navigate to it + if (subContext) { + const subContextData = contextDataObj[subContext]; + if (!subContextData || typeof subContextData !== 'object') { + return undefined; + } + const subContextDataObj = subContextData as Record; + const swapKindKey = + swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + return subContextDataObj[swapKindKey]; + } + + // No subContext, swapKind is directly under context + const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + return contextDataObj[swapKindKey]; +} + +/** + * Sets test data in the nested structure. + * @param testData - The test data object to update + * @param testName - Name of the test case + * @param context - Test context (e.g., 'native input', 'permit2 direct approval') + * @param subContext - Optional sub-context (e.g., 'native output', 'token output') + * @param swapKind - The swap kind being tested + * @param data - The data to save + */ +function setTestData( + testData: Record, + testName: string, + context: string, + subContext: string | undefined, + swapKind: SwapKind, + data: { queryOutput: unknown; call: unknown }, +): void { + if (!testData[testName]) { + testData[testName] = {}; + } + const testDataObj = testData[testName] as Record; + + if (!testDataObj[context]) { + testDataObj[context] = {}; + } + const contextDataObj = testDataObj[context] as Record; + + const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + + if (subContext) { + if (!contextDataObj[subContext]) { + contextDataObj[subContext] = {}; + } + const subContextDataObj = contextDataObj[subContext] as Record< + string, + unknown + >; + subContextDataObj[swapKindKey] = data; + } else { + contextDataObj[swapKindKey] = data; + } +} + +// ---------------------------------------------------------------------------- +// Setup Helpers +// ---------------------------------------------------------------------------- + +/** + * Sets up the fork and test client for integration tests. + * Configures token approvals for Permit2 and creates a snapshot for test isolation. + * @param test - The test configuration + * @returns Fork RPC URL, test client, and pre-approval snapshot + */ +async function setupForkAndClient(test: Test): Promise<{ + fork: { rpcUrl: string }; + client: PublicWalletClient & TestActions; + snapshotPreApprove: Hex; +}> { + const fork = await startFork(test.anvilNetwork); + const client = createTestClient({ + mode: 'anvil', + chain: CHAINS[test.chainId], + transport: http(fork.rpcUrl), + }) + .extend(publicActions) + .extend(walletActions); + + const testAddressCheck = (await client.getAddresses())[0]; + if (testAddressCheck !== TEST_CONSTANTS.ANVIL_TEST_ADDRESS) { + throw Error('Test address mismatch'); + } + + // First step of permit2 flow - user approves Permit2 contract to spend input token + await approveSpenderOnTokens( + client, + TEST_CONSTANTS.ANVIL_TEST_ADDRESS, + [test.path.tokens[0].address], + PERMIT2[test.chainId], + [MAX_UINT256], + ); + + // Uses Special RPC methods to revert state back to same snapshot for each test + // https://github.com/trufflesuite/ganache-cli-archive/blob/master/README.md + const snapshotPreApprove = await client.snapshot(); + + return { fork, client, snapshotPreApprove }; +} + +/** + * Sets up Permit2 approval for the router. + * Reverts to pre-approval snapshot, sets token balances, and approves router via Permit2. + * @param client - The test client + * @param testAddress - Address of the test account + * @param path - The swap path + * @param routerAddress - Address of the router contract + * @param snapshotPreApprove - Snapshot ID before permit2 approval + * @returns New snapshot ID after permit2 approval setup + */ +async function setupPermit2Approval( + client: PublicWalletClient & TestActions, + testAddress: Address, + path: Path, + routerAddress: Address, + snapshotPreApprove: Hex, +): Promise { + // Revert to pre-approval snapshot + await client.revert({ + id: snapshotPreApprove, + }); + const newSnapshot = await client.snapshot(); + + const slot = await findTokenBalanceSlot( + client, + testAddress, + path.tokens[0].address, + ); + + await setTokenBalances( + client, + testAddress, + [path.tokens[0].address], + [slot], + [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], + ); + + // Second step of permit2 flow - user Permit2 approves router to spend input token + await approveSpenderOnPermit2( + client, + testAddress, + path.tokens[0].address, + routerAddress, + ); + + return newSnapshot; +} + +// ---------------------------------------------------------------------------- +// Query/Load Helpers +// ---------------------------------------------------------------------------- + +/** + * Loads query output from saved test data or by querying the swap. + * If saved data exists, it uses that. Otherwise, it queries fresh data from the fork. + * @param savedData - Saved test data (may be undefined) + * @param swap - The Swap instance to query if no saved data exists + * @param fork - Fork RPC URL (required if no saved data) + * @param expectedSwapKind - The expected swap kind to validate against + * @returns The query output matching the expected swap kind + * @throws Error if fork is not available when needed, or if swap kind doesn't match + */ +async function loadQueryOutput< + T extends ExactInQueryOutput | ExactOutQueryOutput, +>( + savedData: unknown, + swap: Swap, + fork: { rpcUrl: string } | undefined, + expectedSwapKind: SwapKind, +): Promise { + const hasSavedData = hasSavedTestData(savedData); + + if (hasSavedData) { + // Use saved query output (skip swap.query() call) + const savedQueryOutput = savedData.queryOutput; + const deserialized = deserializeQueryOutput(savedQueryOutput); + if (deserialized.swapKind !== expectedSwapKind) { + throw new Error( + `Saved query output swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${deserialized.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, + ); + } + return deserialized as T; + } + // Query fresh data - fork must be available + if (!fork) { + throw new Error( + 'Cannot query swap: fork not initialized and no saved test data available', + ); + } + const queryResult = await swap.query(fork.rpcUrl); + if (queryResult.swapKind !== expectedSwapKind) { + throw new Error( + `Query result swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${queryResult.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, + ); + } + return queryResult as T; +} + +// ---------------------------------------------------------------------------- +// Build/Serialize Helpers +// ---------------------------------------------------------------------------- + +/** + * Builds swap call data and serializes it for comparison/saving. + * @param swap - The Swap instance + * @param queryOutput - The query output to build the call from + * @param slippage - Slippage tolerance + * @param deadline - Transaction deadline + * @param wethIsEth - Whether WETH should be treated as native ETH + * @returns The built call and its serialized form + */ +function buildAndSerializeCall( + swap: Swap, + queryOutput: ExactInQueryOutput | ExactOutQueryOutput, + slippage: Slippage, + deadline: bigint, + wethIsEth: boolean, +): { + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; + serializedCall: unknown; +} { + const call = swap.buildCall({ + slippage, + deadline, + queryOutput, + wethIsEth, + }); + + const serializedCall = serializeCallData(call); + + return { call, serializedCall }; +} + +// ---------------------------------------------------------------------------- +// Assert/Compare Helpers +// ---------------------------------------------------------------------------- + +/** + * Asserts or compares swap test results. + * If saved data exists, compares the serialized call data. + * Otherwise, runs full integration assertions and saves the results. + * @param params - Configuration for assertion/comparison + * @throws Error if client is not available when needed for integration tests + */ +async function assertOrCompareSwapResult({ + hasSavedData, + serializedCall, + savedData, + swap, + chainId, + routerAddress, + client, + testAddress, + call, + queryOutput, + swapKind, + wethIsEth, + outputTest, + inputTest, + testName, + context, + subContext, +}: { + hasSavedData: boolean; + serializedCall: unknown; + savedData: unknown; + swap: Swap; + chainId: ChainId; + routerAddress: Address; + client?: PublicWalletClient & TestActions; + testAddress: Address; + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; + queryOutput: ExactInQueryOutput | ExactOutQueryOutput; + swapKind: SwapKind; + wethIsEth: boolean; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; + inputTest?: { + testExactInAmount: boolean; + percentage: number; + }; + testName: string; + context: string; + subContext: string | undefined; +}): Promise { + if (hasSavedData && hasSavedTestData(savedData)) { + // Compare with saved call data + // TypeScript now knows savedData is SavedSwapTestData after type guard + expect(serializedCall).to.deep.equal(savedData.call); + } else { + // Run full integration assertions - client must be available + if (!client) { + throw new Error( + 'Cannot run integration assertions: client not initialized and no saved test data available', + ); + } + if (swapKind === SwapKind.GivenIn) { + await assertResultExactIn({ + wethIsEth, + swap, + chainId, + contractToCall: routerAddress, + client, + testAddress, + call: call as SwapBuildOutputExactIn, + outputTest: outputTest || TEST_CONSTANTS.defaultOutputTest, + exactInQueryOutput: queryOutput as ExactInQueryOutput, + }); + } else { + await assertResultExactOut({ + wethIsEth, + swap, + chainId, + contractToCall: routerAddress, + client, + testAddress, + call: call as SwapBuildOutputExactOut, + inputTest: inputTest || TEST_CONSTANTS.defaultInputTest, + exactOutQueryOutput: queryOutput as ExactOutQueryOutput, + }); + } + // Save both query output and call data for new tests + setTestData(swapTestData, testName, context, subContext, swapKind, { + queryOutput: serializeQueryOutput(queryOutput), + call: serializedCall, + }); + } +} + +// ---------------------------------------------------------------------------- +// Main Test Function +// ---------------------------------------------------------------------------- + +/** + * Configuration for running a swap test. + */ +type TestSwapConfig = { + chainId: ChainId; + path: Path; + swapKind: SwapKind; + wethIsEth: boolean; + fork?: { rpcUrl: string }; + routerAddress: Address; + client?: PublicWalletClient & TestActions; + testAddress: Address; + slippage: Slippage; + deadline: bigint; + testName: string; + context: string; + subContext?: string; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; + inputTest?: { + testExactInAmount: boolean; + percentage: number; + }; +}; + +/** + * Executes a swap test by loading query output, building call data, and asserting results. + * Can use saved test data for faster execution or run full integration tests. + * @param config - Test configuration + */ +async function testSwap(config: TestSwapConfig) { + const { + chainId, + path, + swapKind, + wethIsEth, + fork, + routerAddress, + client, + testAddress, + slippage, + deadline, + testName, + context, + subContext, + outputTest = TEST_CONSTANTS.defaultOutputTest, + inputTest = TEST_CONSTANTS.defaultInputTest, + } = config; + const swap = new Swap({ + chainId, + paths: [path], + swapKind, + }); + + const savedData = getTestData( + savedSwapTestData, + testName, + context, + subContext, + swapKind, + ); + const hasSavedData = hasSavedTestData(savedData); + + // Load query output (from saved data or by querying) + const queryOutput = + swapKind === SwapKind.GivenIn + ? await loadQueryOutput( + savedData, + swap, + fork, + SwapKind.GivenIn, + ) + : await loadQueryOutput( + savedData, + swap, + fork, + SwapKind.GivenOut, + ); + + // Build and serialize call + const { call, serializedCall } = buildAndSerializeCall( + swap, + queryOutput, + slippage, + deadline, + wethIsEth, + ); + + // Assert or compare results + await assertOrCompareSwapResult({ + hasSavedData, + serializedCall, + savedData, + swap, + chainId, + routerAddress, + client, + testAddress, + call, + queryOutput, + swapKind, + wethIsEth, + outputTest, + inputTest, + testName, + context, + subContext, + }); +} diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json new file mode 100644 index 000000000..a766775fd --- /dev/null +++ b/test/entities/swaps/v3/swapTestData.json @@ -0,0 +1,351 @@ +{ + "Single Swap - WETH>USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } + } + } + }, + "Single Swap - USDC>WETH": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } + } + } + }, + "Single Swap - NOT NATIVE": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/test/lib/utils/addresses.ts b/test/lib/utils/addresses.ts index 579b6d22e..dbf8bd768 100644 --- a/test/lib/utils/addresses.ts +++ b/test/lib/utils/addresses.ts @@ -242,6 +242,17 @@ export const TOKENS: Record> = { decimals: 18, }, }, + [ChainId.BASE]: { + WETH: { + address: '0x4200000000000000000000000000000000000006', + decimals: 18, + }, + USDC: { + address: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913', + decimals: 6, + slot: 9, + }, + }, }; export type TestPool = TestToken & { id: Hex; type: PoolType }; diff --git a/test/lib/utils/index.ts b/test/lib/utils/index.ts index 5820b2b07..1360031a6 100644 --- a/test/lib/utils/index.ts +++ b/test/lib/utils/index.ts @@ -11,5 +11,6 @@ export * from './relayerHelper'; export * from './removeLiquidityHelper'; export * from './removeLiquidityRecoveryHelper'; export * from './swapHelpers'; +export * from './swapTestDataHelpers'; export * from './types'; export * from './addLiquidityBoostedHelper'; diff --git a/test/lib/utils/swapHelpers.ts b/test/lib/utils/swapHelpers.ts index 2c08c853f..dc2357b42 100644 --- a/test/lib/utils/swapHelpers.ts +++ b/test/lib/utils/swapHelpers.ts @@ -11,6 +11,8 @@ import { SwapKind, Permit2Helper, PublicWalletClient, + ExactOutQueryOutput, + ExactInQueryOutput, } from '../../../src'; import { sendTransactionGetBalances } from '../../lib/utils/helper'; @@ -93,6 +95,47 @@ export async function assertSwapExactIn({ call = swap.buildCall(buildCallInput) as SwapBuildOutputExactIn; } + await assertResultExactIn({ + wethIsEth, + swap, + chainId, + contractToCall, + client, + testAddress, + call, + outputTest, + exactInQueryOutput: expected, + }); +} + +export async function assertResultExactIn({ + wethIsEth, + swap, + chainId, + contractToCall, + client, + testAddress, + call, + outputTest, + exactInQueryOutput, +}: { + wethIsEth: boolean; + swap: Swap; + chainId: ChainId; + contractToCall: Address; + client: PublicWalletClient & TestActions; + testAddress: Address; + call: SwapBuildOutputExactIn; + outputTest: { + testExactOutAmount: boolean; + percentage: number; + }; + exactInQueryOutput: ExactInQueryOutput; +}) { + if (exactInQueryOutput.swapKind !== SwapKind.GivenIn) + throw Error('Expected GivenIn'); + expect(exactInQueryOutput.expectedAmountOut.amount > 0n).to.be.true; + const isEthInput = wethIsEth && swap.inputAmount.token.isSameAddress(NATIVE_ASSETS[chainId].wrapped); @@ -122,7 +165,7 @@ export async function assertSwapExactIn({ swap.outputAmount.token.isSameAddress(NATIVE_ASSETS[chainId].wrapped); let expectedEthDelta = 0n; let expectedTokenInDelta = swap.inputAmount.amount; - let expectedTokenOutDelta = expected.expectedAmountOut.amount; + let expectedTokenOutDelta = exactInQueryOutput.expectedAmountOut.amount; if (isEthInput) { // Should send eth instead of tokenIn (weth) expectedEthDelta = swap.inputAmount.amount; @@ -130,7 +173,7 @@ export async function assertSwapExactIn({ } if (isEthOutput) { // should receive eth instead of tokenOut (weth) - expectedEthDelta = expected.expectedAmountOut.amount; + expectedEthDelta = exactInQueryOutput.expectedAmountOut.amount; expectedTokenOutDelta = 0n; } @@ -220,6 +263,47 @@ export async function assertSwapExactOut({ call = swap.buildCall(buildCallInput) as SwapBuildOutputExactOut; } + await assertResultExactOut({ + wethIsEth, + swap, + chainId, + contractToCall, + client, + testAddress, + call, + inputTest, + exactOutQueryOutput: expected, + }); +} + +export async function assertResultExactOut({ + wethIsEth, + swap, + chainId, + contractToCall, + client, + testAddress, + call, + inputTest, + exactOutQueryOutput, +}: { + wethIsEth: boolean; + swap: Swap; + chainId: ChainId; + contractToCall: Address; + client: PublicWalletClient & TestActions; + testAddress: Address; + call: SwapBuildOutputExactOut; + inputTest: { + testExactInAmount: boolean; + percentage: number; + }; + exactOutQueryOutput: ExactOutQueryOutput; +}) { + if (exactOutQueryOutput.swapKind !== SwapKind.GivenOut) + throw Error('Expected GivenOut'); + expect(exactOutQueryOutput.expectedAmountIn.amount > 0n).to.be.true; + const isEthInput = wethIsEth && swap.inputAmount.token.isSameAddress(NATIVE_ASSETS[chainId].wrapped); @@ -250,11 +334,11 @@ export async function assertSwapExactOut({ wethIsEth && swap.outputAmount.token.isSameAddress(NATIVE_ASSETS[chainId].wrapped); let expectedEthDelta = 0n; - let expectedTokenInDelta = expected.expectedAmountIn.amount; + let expectedTokenInDelta = exactOutQueryOutput.expectedAmountIn.amount; let expectedTokenOutDelta = swap.outputAmount.amount; if (isEthInput) { // Should send eth instead of tokenIn (weth) - expectedEthDelta = expected.expectedAmountIn.amount; + expectedEthDelta = exactOutQueryOutput.expectedAmountIn.amount; expectedTokenInDelta = 0n; } if (isEthOutput) { diff --git a/test/lib/utils/swapTestDataHelpers.ts b/test/lib/utils/swapTestDataHelpers.ts new file mode 100644 index 000000000..22cfef5ac --- /dev/null +++ b/test/lib/utils/swapTestDataHelpers.ts @@ -0,0 +1,498 @@ +import { Address } from 'viem'; +import { readFileSync } from 'node:fs'; +import { writeFile } from 'node:fs/promises'; +import { TokenAmount } from '@/entities/tokenAmount'; +import { Token } from '@/entities/token'; +import { + SwapKind, + ExactInQueryOutput, + ExactOutQueryOutput, + SwapBuildOutputExactIn, + SwapBuildOutputExactOut, +} from '@/index'; + +// JSON serialization utility +export const serializeTokenAmount = (tokenAmount: TokenAmount) => { + return { + token: { + chainId: tokenAmount.token.chainId, + address: tokenAmount.token.address, + decimals: tokenAmount.token.decimals, + ...(tokenAmount.token.symbol !== undefined && { + symbol: tokenAmount.token.symbol, + }), + ...(tokenAmount.token.name !== undefined && { + name: tokenAmount.token.name, + }), + wrapped: tokenAmount.token.wrapped, + }, + amount: tokenAmount.amount.toString(), + scalar: tokenAmount.scalar.toString(), + decimalScale: tokenAmount.decimalScale.toString(), + scale18: tokenAmount.scale18.toString(), + }; +}; + +/** + * Deserializes a TokenAmount from JSON. + * Validates the structure and data before creating the TokenAmount instance. + * @param serialized - The serialized TokenAmount data + * @returns A TokenAmount instance + * @throws Error if the data structure is invalid or validation fails + */ +export const deserializeTokenAmount = (serialized: unknown): TokenAmount => { + if (typeof serialized !== 'object' || serialized === null) { + throw new Error( + `Invalid serialized TokenAmount: expected object, got ${typeof serialized}`, + ); + } + + if (!('token' in serialized)) { + throw new Error( + 'Invalid serialized TokenAmount: missing required field "token"', + ); + } + if (!('amount' in serialized)) { + throw new Error( + 'Invalid serialized TokenAmount: missing required field "amount"', + ); + } + + const data = serialized as { + token: { + chainId: number; + address: Address; + decimals: number; + symbol?: string; + name?: string; + wrapped: Address; + }; + amount: string; + scalar?: string; + decimalScale?: string; + scale18?: string; + }; + + // Validate token structure + if ( + typeof data.token !== 'object' || + data.token === null || + typeof data.token.chainId !== 'number' || + typeof data.token.address !== 'string' || + typeof data.token.decimals !== 'number' || + typeof data.token.wrapped !== 'string' + ) { + throw new Error( + 'Invalid serialized TokenAmount: token object is malformed or missing required fields (chainId, address, decimals, wrapped)', + ); + } + + // Validate amount + if (typeof data.amount !== 'string') { + throw new Error( + `Invalid serialized TokenAmount: amount must be a string, got ${typeof data.amount}`, + ); + } + + let amountBigInt: bigint; + try { + amountBigInt = BigInt(data.amount); + } catch { + throw new Error( + `Invalid serialized TokenAmount: amount "${data.amount}" cannot be converted to BigInt`, + ); + } + + // Validate amount is non-negative + if (amountBigInt < 0n) { + throw new Error( + `Invalid serialized TokenAmount: amount cannot be negative, got ${data.amount}`, + ); + } + + // Validate address format (basic check - should be hex string starting with 0x) + if (!/^0x[a-fA-F0-9]{40}$/.test(data.token.address)) { + throw new Error( + `Invalid serialized TokenAmount: token address "${data.token.address}" is not a valid Ethereum address`, + ); + } + if (!/^0x[a-fA-F0-9]{40}$/.test(data.token.wrapped)) { + throw new Error( + `Invalid serialized TokenAmount: wrapped address "${data.token.wrapped}" is not a valid Ethereum address`, + ); + } + + // Validate decimals + if (data.token.decimals < 0 || data.token.decimals > 255) { + throw new Error( + `Invalid serialized TokenAmount: decimals must be between 0 and 255, got ${data.token.decimals}`, + ); + } + + const token = new Token( + data.token.chainId, + data.token.address, + data.token.decimals, + data.token.symbol, + data.token.name, + data.token.wrapped, + ); + return TokenAmount.fromRawAmount(token, amountBigInt); +}; + +/** + * Deserializes a QueryOutput (ExactIn or ExactOut) from JSON. + * Validates the structure and required fields based on swap kind. + * @param serialized - The serialized QueryOutput data + * @returns An ExactInQueryOutput or ExactOutQueryOutput + * @throws Error if the data structure is invalid or required fields are missing + */ +export const deserializeQueryOutput = ( + serialized: unknown, +): ExactInQueryOutput | ExactOutQueryOutput => { + if (typeof serialized !== 'object' || serialized === null) { + throw new Error( + `Invalid serialized QueryOutput: expected object, got ${typeof serialized}`, + ); + } + + if (!('swapKind' in serialized)) { + throw new Error( + 'Invalid serialized QueryOutput: missing required field "swapKind"', + ); + } + + const data = serialized as { + swapKind: number; + to?: Address; + pathAmounts?: string[]; + amountIn?: unknown; + expectedAmountOut?: unknown; + amountOut?: unknown; + expectedAmountIn?: unknown; + }; + + // Validate swapKind + if ( + data.swapKind !== SwapKind.GivenIn && + data.swapKind !== SwapKind.GivenOut + ) { + throw new Error( + `Invalid serialized QueryOutput: swapKind must be ${SwapKind.GivenIn} (GivenIn) or ${SwapKind.GivenOut} (GivenOut), got ${data.swapKind}`, + ); + } + + // Validate 'to' field + if (!('to' in data) || typeof data.to !== 'string') { + throw new Error( + 'Invalid serialized QueryOutput: missing or invalid "to" field (must be a valid address string)', + ); + } + if (!/^0x[a-fA-F0-9]{40}$/.test(data.to)) { + throw new Error( + `Invalid serialized QueryOutput: "to" address "${data.to}" is not a valid Ethereum address`, + ); + } + + // Validate pathAmounts if present + let pathAmounts: bigint[] | undefined; + if (data.pathAmounts !== undefined) { + if (!Array.isArray(data.pathAmounts)) { + throw new Error( + `Invalid serialized QueryOutput: pathAmounts must be an array, got ${typeof data.pathAmounts}`, + ); + } + try { + pathAmounts = data.pathAmounts.map((amt) => { + if (typeof amt !== 'string') { + throw new Error( + `Invalid serialized QueryOutput: pathAmounts must contain string values, got ${typeof amt}`, + ); + } + const bigIntAmt = BigInt(amt); + if (bigIntAmt < 0n) { + throw new Error( + `Invalid serialized QueryOutput: pathAmounts cannot contain negative values, got ${amt}`, + ); + } + return bigIntAmt; + }); + } catch (error) { + if (error instanceof Error) { + throw error; + } + throw new Error( + `Invalid serialized QueryOutput: pathAmounts contains invalid values: ${error}`, + ); + } + } + + const base = { + swapKind: data.swapKind as SwapKind, + to: data.to, + pathAmounts, + }; + + if (data.swapKind === SwapKind.GivenIn) { + if (!('amountIn' in data) || data.amountIn === undefined) { + throw new Error( + 'Invalid ExactInQueryOutput: missing required field "amountIn"', + ); + } + if ( + !('expectedAmountOut' in data) || + data.expectedAmountOut === undefined + ) { + throw new Error( + 'Invalid ExactInQueryOutput: missing required field "expectedAmountOut"', + ); + } + return { + ...base, + swapKind: SwapKind.GivenIn, + amountIn: deserializeTokenAmount(data.amountIn), + expectedAmountOut: deserializeTokenAmount(data.expectedAmountOut), + } as ExactInQueryOutput; + } + + // GivenOut case + if (!('amountOut' in data) || data.amountOut === undefined) { + throw new Error( + 'Invalid ExactOutQueryOutput: missing required field "amountOut"', + ); + } + if (!('expectedAmountIn' in data) || data.expectedAmountIn === undefined) { + throw new Error( + 'Invalid ExactOutQueryOutput: missing required field "expectedAmountIn"', + ); + } + return { + ...base, + swapKind: SwapKind.GivenOut, + amountOut: deserializeTokenAmount(data.amountOut), + expectedAmountIn: deserializeTokenAmount(data.expectedAmountIn), + } as ExactOutQueryOutput; +}; + +export function serializeQueryOutput( + queryOutput: ExactInQueryOutput | ExactOutQueryOutput, +): unknown { + const base = { + swapKind: queryOutput.swapKind, + to: queryOutput.to, + pathAmounts: queryOutput.pathAmounts?.map((amt) => amt.toString()), + }; + + if (queryOutput.swapKind === SwapKind.GivenIn) { + return { + ...base, + amountIn: serializeTokenAmount(queryOutput.amountIn), + expectedAmountOut: serializeTokenAmount( + queryOutput.expectedAmountOut, + ), + }; + } + return { + ...base, + amountOut: serializeTokenAmount(queryOutput.amountOut), + expectedAmountIn: serializeTokenAmount(queryOutput.expectedAmountIn), + }; +} + +export function serializeCallData( + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut, +): unknown { + const base = { + to: call.to, + callData: call.callData, + value: call.value.toString(), + }; + + if ('minAmountOut' in call) { + return { + ...base, + minAmountOut: serializeTokenAmount(call.minAmountOut), + }; + } + return { + ...base, + maxAmountIn: serializeTokenAmount(call.maxAmountIn), + }; +} + +/** + * Loads swap test data from a JSON file. + * Returns an empty object if the file doesn't exist or can't be read. + * @param filePath - Path to the JSON file + * @returns Parsed JSON data as a record, or empty object on error + */ +export function loadSwapTestData(filePath: string): Record { + try { + const fileContent = readFileSync(filePath, 'utf-8'); + return JSON.parse(fileContent); + } catch { + // File doesn't exist or can't be read - treat as empty object + return {}; + } +} + +/** + * Deep merges two objects, preserving nested structure. + * @param target - Target object to merge into + * @param source - Source object to merge from + * @returns Merged object + */ +function deepMerge( + target: Record, + source: Record, +): Record { + const result = { ...target }; + for (const key in source) { + if ( + source[key] && + typeof source[key] === 'object' && + !Array.isArray(source[key]) && + target[key] && + typeof target[key] === 'object' && + !Array.isArray(target[key]) + ) { + result[key] = deepMerge( + target[key] as Record, + source[key] as Record, + ); + } else { + result[key] = source[key]; + } + } + return result; +} + +/** + * Saves swap test data to a JSON file. + * Deep merges existingData with newData (existingData takes precedence for conflicts). + * Logs errors but doesn't throw. + * @param filePath - Path to the JSON file + * @param existingData - Existing test data to preserve + * @param newData - New test data to add (nested structure) + */ +export async function saveSwapTestData( + filePath: string, + existingData: Record, + newData: Record, +): Promise { + try { + // Deep merge saved data with new test data (preserves existing, adds new) + const mergedData = deepMerge(existingData, newData); + + // Write the merged data to file + await writeFile(filePath, JSON.stringify(mergedData, null, 2), 'utf-8'); + console.log(`Swap test data written to ${filePath}`); + } catch (error) { + console.error('Failed to write swap test data:', error); + // Don't throw - we don't want to fail tests if file write fails + } +} + +/** + * Type representing saved swap test data with serialized query output and call data. + */ +export type SavedSwapTestData = { + queryOutput: unknown; + call: unknown; +}; + +/** + * Type guard to check if data is valid saved swap test data. + * Valid saved data must be an object with both 'queryOutput' and 'call' properties. + * @param data - Data to check + * @returns True if data is valid SavedSwapTestData, false otherwise + */ +export function hasSavedTestData(data: unknown): data is SavedSwapTestData { + return ( + data !== undefined && + data !== null && + typeof data === 'object' && + 'queryOutput' in data && + 'call' in data + ); +} + +/** + * Type for test configuration used to check saved data. + */ +type TestConfig = { + name: string; + isNative: 'input' | 'output' | 'none'; +}; + +/** + * Checks if all tests for a given test configuration have valid saved data. + * Valid saved data must be an object with both 'queryOutput' and 'call' properties. + * Checks the nested structure: testName > context > subContext > swapKind + * @param test - The test configuration + * @param savedData - Nested record of saved test data + * @returns True if all tests have valid saved data, false otherwise + */ +export function allTestsHaveSavedData( + test: TestConfig, + savedData: Record, +): boolean { + const testData = savedData[test.name]; + if (!testData || typeof testData !== 'object') { + return false; + } + + const testDataObj = testData as Record; + + // Check native input tests (if applicable) + if (test.isNative === 'input') { + const nativeInput = testDataObj['native input']; + if ( + !nativeInput || + typeof nativeInput !== 'object' || + !hasSavedTestData( + (nativeInput as Record).GivenIn, + ) || + !hasSavedTestData((nativeInput as Record).GivenOut) + ) { + return false; + } + } + + // Check permit2 direct approval tests + const permit2 = testDataObj['permit2 direct approval']; + if (!permit2 || typeof permit2 !== 'object') { + return false; + } + const permit2Obj = permit2 as Record; + + // Check native output tests (if applicable) + if (test.isNative === 'output') { + const nativeOutput = permit2Obj['native output']; + if ( + !nativeOutput || + typeof nativeOutput !== 'object' || + !hasSavedTestData( + (nativeOutput as Record).GivenIn, + ) || + !hasSavedTestData( + (nativeOutput as Record).GivenOut, + ) + ) { + return false; + } + } + + // Check token output tests (always present) + const tokenOutput = permit2Obj['token output']; + if ( + !tokenOutput || + typeof tokenOutput !== 'object' || + !hasSavedTestData((tokenOutput as Record).GivenIn) || + !hasSavedTestData((tokenOutput as Record).GivenOut) + ) { + return false; + } + + return true; +} From 88912bbf5e9cc79db8f5c5e718e94f8c06487783 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Tue, 9 Dec 2025 12:00:48 +0000 Subject: [PATCH 02/13] Use unique job id. --- test/entities/swaps/v3/swap.integration.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts index c1d25b584..31e41930e 100644 --- a/test/entities/swaps/v3/swap.integration.test.ts +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -51,7 +51,7 @@ import { allTestsHaveSavedData, hasSavedTestData, } from 'test/lib/utils'; -import { join, dirname } from 'node:path'; +import { join, dirname, basename } from 'node:path'; import { fileURLToPath } from 'node:url'; import { expect } from 'vitest'; @@ -59,6 +59,10 @@ import { expect } from 'vitest'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const swapTestDataPath = join(__dirname, 'swapTestData.json'); +const jobId = + basename(__filename) + .split('') + .reduce((sum, char) => sum + char.charCodeAt(0), 0) % 10000; // Load existing test data (if file exists) const savedSwapTestData = loadSwapTestData(swapTestDataPath); @@ -317,7 +321,7 @@ for (const test of tests) { // Only stop fork if it was started if (fork) { console.log('stopFork', test.name); - await stopAnvilFork(test.anvilNetwork); + await stopAnvilFork(test.anvilNetwork, jobId); } }); }); @@ -440,7 +444,7 @@ async function setupForkAndClient(test: Test): Promise<{ client: PublicWalletClient & TestActions; snapshotPreApprove: Hex; }> { - const fork = await startFork(test.anvilNetwork); + const fork = await startFork(test.anvilNetwork, jobId); const client = createTestClient({ mode: 'anvil', chain: CHAINS[test.chainId], From bfe2571131413a96c6d601f96da5129e0748ae97 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Thu, 11 Dec 2025 11:21:51 +0000 Subject: [PATCH 03/13] Update Anvil mnemonic to make sure accounts do not have delegation which causes Native tests to break. --- test/anvil/anvil-global-setup.ts | 3 +- .../swaps/v3/swap.integration.test.ts | 2 +- test/entities/swaps/v3/swapTestData.json | 143 ++++++++++++++++++ 3 files changed, 146 insertions(+), 2 deletions(-) diff --git a/test/anvil/anvil-global-setup.ts b/test/anvil/anvil-global-setup.ts index ad8826a0b..e30d747a2 100644 --- a/test/anvil/anvil-global-setup.ts +++ b/test/anvil/anvil-global-setup.ts @@ -170,7 +170,8 @@ function getAnvilOptions( forkUrl, port, forkBlockNumber, - mnemonic: 'test test test test test test test test test test test junk', // Anvil's default mnemonic for deterministic accounts + mnemonic: + 'you twelve word test phrase boat cat like this example dog car', // mnemonic for deterministic accounts - should not have delegated accounts }; } diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts index 31e41930e..48ee9269f 100644 --- a/test/entities/swaps/v3/swap.integration.test.ts +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -72,7 +72,7 @@ const swapTestData: Record = {}; // Test configuration constants const TEST_CONSTANTS = { - ANVIL_TEST_ADDRESS: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266', // Anvil's default test address from mnemonic "test test test test test test test test test test test junk" + ANVIL_TEST_ADDRESS: '0x831eFb058FEdCd16Cd6b9174206DFe452dDCe8C3', // address from mnemonic "you twelve word test phrase boat cat like this example dog car" BALANCE_MULTIPLIER: 10n, // For setting token balances slippage: Slippage.fromPercentage('0.1'), deadline: 999999999999999999n, diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index a766775fd..842653e1e 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -47,6 +47,53 @@ "scale18": "27882846000000000000" } } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36035317524420364", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36035317524420364" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36071352841944784", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36071352841944784", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36071352841944784" + } + } } }, "permit2 direct approval": { @@ -245,6 +292,102 @@ } } } + }, + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } } } }, From 2e27f7fa7cfd61708cdf610e308ffba03982dd62 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Thu, 11 Dec 2025 11:26:27 +0000 Subject: [PATCH 04/13] chore: Fix lint on testData. --- test/entities/swaps/v3/swapTestData.json | 964 +++++++++++------------ 1 file changed, 482 insertions(+), 482 deletions(-) diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index 842653e1e..990f16e61 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -1,494 +1,494 @@ { - "Single Swap - WETH>USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "Single Swap - WETH>USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36035317524420364", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36035317524420364" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36071352841944784", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36071352841944784", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36071352841944784" - } - } - } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36035317524420364", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36035317524420364" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36071352841944784", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36071352841944784", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36071352841944784" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } } - } - } - }, - "Single Swap - USDC>WETH": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } - } - }, - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" + }, + "Single Swap - USDC>WETH": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } } - } - } - }, - "Single Swap - NOT NATIVE": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" + }, + "Single Swap - NOT NATIVE": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } } - } } - } } - } -} \ No newline at end of file +} From 3c9ad6faf71e45813f503c05ec8285c82b2891f3 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Mon, 15 Dec 2025 11:46:09 +0000 Subject: [PATCH 05/13] test: Add full V3 swap test cases. --- .../swaps/v3/swap.integration.test.ts | 158 +- test/entities/swaps/v3/swapTestData.json | 2710 ++++++++++++++--- test/lib/utils/addresses.ts | 4 + 3 files changed, 2382 insertions(+), 490 deletions(-) diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts index 48ee9269f..45d6634ca 100644 --- a/test/entities/swaps/v3/swap.integration.test.ts +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -33,7 +33,7 @@ import { startFork, stopAnvilFork, } from 'test/anvil/anvil-global-setup'; -import { TOKENS } from 'test/lib/utils/addresses'; +import { POOLS, TOKENS } from 'test/lib/utils/addresses'; import { approveSpenderOnPermit2, approveSpenderOnTokens, @@ -94,11 +94,16 @@ type Test = { anvilNetwork: NetworkSetup; path: Path; isNative: NativePosition; + blockNumber?: bigint; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; }; const tests: Test[] = [ { - name: 'Single Swap - WETH>USDC', + name: 'Single Swap: WETH[swap]USDC', chainId: ChainId.BASE, anvilNetwork: ANVIL_NETWORKS.BASE, path: { @@ -120,7 +125,7 @@ const tests: Test[] = [ isNative: 'input', }, { - name: 'Single Swap - USDC>WETH', + name: 'Single Swap: USDC[swap]WETH', chainId: ChainId.BASE, anvilNetwork: ANVIL_NETWORKS.BASE, path: { @@ -142,12 +147,45 @@ const tests: Test[] = [ isNative: 'output', }, { - name: 'Single Swap - NOT NATIVE', + name: 'Multihop Swap: WETH[swap]USDC[swap]EURC', chainId: ChainId.BASE, anvilNetwork: ANVIL_NETWORKS.BASE, path: { protocolVersion: 3, tokens: [ + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].EURC.address, + decimals: TOKENS[ChainId.BASE].EURC.decimals, + }, + ], + pools: [ + '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', + '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', + ], + inputAmountRaw: 10000000000000000n, + outputAmountRaw: 100000000n, + }, + isNative: 'input', + }, + { + name: 'Multihop Swap: EURC[swap]USDC[swap]WETH', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].EURC.address, + decimals: TOKENS[ChainId.BASE].EURC.decimals, + }, { address: TOKENS[ChainId.BASE].USDC.address, decimals: TOKENS[ChainId.BASE].USDC.decimals, @@ -157,11 +195,114 @@ const tests: Test[] = [ decimals: TOKENS[ChainId.BASE].WETH.decimals, }, ], - pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], - inputAmountRaw: 1000000000n, - outputAmountRaw: 100000000000000000n, + pools: [ + '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', + '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', + ], + inputAmountRaw: 100000000n, + outputAmountRaw: 10000000000000000n, + }, + isNative: 'output', + }, + { + name: 'Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC', + chainId: ChainId.SEPOLIA, + anvilNetwork: ANVIL_NETWORKS.SEPOLIA, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.SEPOLIA].WETH.address, + decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, + }, + { + address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, + decimals: + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, + }, + { + address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, + decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, + }, + ], + pools: [ + POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, + ], + inputAmountRaw: 100000000000000n, + outputAmountRaw: 600000n, + }, + isNative: 'input', + }, + { + name: 'Multihop Swap With Join: USDC[join]BPT[swap]WETH', + chainId: ChainId.SEPOLIA, + anvilNetwork: ANVIL_NETWORKS.SEPOLIA, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, + decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, + }, + { + address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, + decimals: + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, + }, + { + address: TOKENS[ChainId.SEPOLIA].WETH.address, + decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, + }, + ], + pools: [ + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, + POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, + ], + inputAmountRaw: 600000n, + outputAmountRaw: 100000000000000n, + }, + isNative: 'output', + }, + { + name: 'Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO', + chainId: ChainId.MAINNET, + anvilNetwork: ANVIL_NETWORKS.MAINNET, + path: { + protocolVersion: 3, + tokens: [ + { + address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC + decimals: 6, + }, + { + address: '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC + decimals: 6, + }, + { + address: '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO + decimals: 18, + }, + { + address: '0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f', // GHO + decimals: 18, + }, + ], + pools: [ + '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC (ERC4626) + '0x85b2b559bc2d21104c4defdd6efca8a20343361d', // Pool + '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO (ERC4626), + ], + isBuffer: [true, false, true], + inputAmountRaw: 10000000000n, + outputAmountRaw: 100000000000000000000n, }, isNative: 'none', + blockNumber: 24017736n, + outputTest: { + testExactOutAmount: false, + percentage: 0.001, + }, }, ]; // ============================================================================ @@ -295,6 +436,7 @@ for (const test of tests) { testName: test.name, context: 'permit2 direct approval', subContext: 'token output', + outputTest: test.outputTest, }); }); @@ -444,7 +586,7 @@ async function setupForkAndClient(test: Test): Promise<{ client: PublicWalletClient & TestActions; snapshotPreApprove: Hex; }> { - const fork = await startFork(test.anvilNetwork, jobId); + const fork = await startFork(test.anvilNetwork, jobId, test.blockNumber); const client = createTestClient({ mode: 'anvil', chain: CHAINS[test.chainId], diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index 990f16e61..8089fa1ce 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -1,494 +1,2240 @@ { - "Single Swap - WETH>USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36035317524420364", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36035317524420364" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36071352841944784", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36071352841944784", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36071352841944784" - } - } + "Single Swap - WETH>USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36035317524420364", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36035317524420364" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36071352841944784", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36071352841944784", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36071352841944784" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } + } + } + }, + "Single Swap - USDC>WETH": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } + }, + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } + } + } + }, + "Single Swap - NOT NATIVE": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } + } + } + }, + "Multihop Swap - WETH>USDC>EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } + } + } + }, + "Multihop Swap - EURC>USDC>WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "41102074809553470" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24609406" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "40176740744878721" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "25174229" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } + } + } + }, + "Single Swap: WETH[swap]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36232502910235848", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" } + } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } + } + } + }, + "Single Swap: USDC[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } + } + } + }, + "Multihop Swap: WETH[swap]USDC[swap]EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } } + } }, - "Single Swap - USDC>WETH": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } - } - }, - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } + } + } + }, + "Multihop Swap: EURC[swap]USDC[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "41102074809553470" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24609406" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "40176740744878721" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "25174229" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } + } + } + }, + "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "576500" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "100000000000000", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "104118574098812" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "104222692672910", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } } + } }, - "Single Swap - NOT NATIVE": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "576500" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "104118574098812" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } + } + } + } + }, + "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100949709114218" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "594597" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594597", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594597000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595191", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595191000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100872970306657" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100872970306657", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100872970306657" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100772097336350", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100772097336350" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "595049" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595049", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595049000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595644", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595644000000000000" + } + } + } + } + } + }, + "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "9999530198927941607705" + ], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530198927941607705", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530198927941607705" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530668729013666097", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530668729013666097" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "100004734" + ], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004734", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004734000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104738", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104738000000000000" } + } } + } } -} + } +} \ No newline at end of file diff --git a/test/lib/utils/addresses.ts b/test/lib/utils/addresses.ts index dbf8bd768..b77e234f2 100644 --- a/test/lib/utils/addresses.ts +++ b/test/lib/utils/addresses.ts @@ -252,6 +252,10 @@ export const TOKENS: Record> = { decimals: 6, slot: 9, }, + EURC: { + address: '0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42', + decimals: 6, + }, }, }; From 24c78964bf41b756467b9d9af81159508692cfc2 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Mon, 15 Dec 2025 11:49:40 +0000 Subject: [PATCH 06/13] test: Remove old direct approval swap tests. --- .../swaps/v3/swapV3.integration.test.ts | 458 +----------------- 1 file changed, 1 insertion(+), 457 deletions(-) diff --git a/test/entities/swaps/v3/swapV3.integration.test.ts b/test/entities/swaps/v3/swapV3.integration.test.ts index 7a5eaad73..355cf58f4 100644 --- a/test/entities/swaps/v3/swapV3.integration.test.ts +++ b/test/entities/swaps/v3/swapV3.integration.test.ts @@ -1,4 +1,4 @@ -// pnpm test -- swapV3.integration.test.ts +// pnpm test test/entities/swaps/v3/swapV3.integration.test.ts import { config } from 'dotenv'; config(); import { @@ -41,11 +41,7 @@ const BAL = TOKENS[chainId].BAL; const WETH = TOKENS[chainId].WETH; const USDC = TOKENS[chainId].USDC_AAVE; const DAI = TOKENS[chainId].DAI_AAVE; -const USDT = TOKENS[chainId].USDT_AAVE; const USDC_DAI_BPT = POOLS[chainId].MOCK_USDC_DAI_POOL; -const boosted_pool = POOLS[chainId].MOCK_BOOSTED_POOL; -const stataUSDC = TOKENS[chainId].stataUSDC; -const stataUSDT = TOKENS[chainId].stataUSDT; describe('SwapV3', () => { let client: PublicWalletClient & TestActions; @@ -54,9 +50,7 @@ describe('SwapV3', () => { let snapshot: Hex; let pathBalWeth: Path; let pathMultiSwap: Path; - let pathUsdcWethMulti: Path; let pathWithExit: Path; - let pathUsdcWethJoin: Path; let tokens: Address[]; beforeAll(async () => { @@ -108,15 +102,6 @@ describe('SwapV3', () => { outputAmountRaw: 2000000n, }; - // usdc [swap] dai [swap] bal [swap] weth - pathUsdcWethMulti = { - ...pathMultiSwap, - tokens: [...pathMultiSwap.tokens].reverse(), - pools: [...pathMultiSwap.pools].reverse(), - inputAmountRaw: 100000n, - outputAmountRaw: 40000000000000n, - }; - // weth [swap] bpt [exit] usdc pathWithExit = { protocolVersion, @@ -142,15 +127,6 @@ describe('SwapV3', () => { outputAmountRaw: 6000000n, }; - // usdc [join] bpt [swap] weth - pathUsdcWethJoin = { - ...pathWithExit, - tokens: [...pathWithExit.tokens].reverse(), - pools: [...pathWithExit.pools].reverse(), - inputAmountRaw: 6000000n, - outputAmountRaw: 600000000000000n, - }; - const fork = await startFork(ANVIL_NETWORKS.SEPOLIA); rpcUrl = fork.rpcUrl; client = createTestClient({ @@ -192,343 +168,6 @@ describe('SwapV3', () => { snapshot = await client.snapshot(); }); - describe('permit2 direct approval', () => { - beforeEach(async () => { - await approveTokens(client, testAddress, tokens, protocolVersion); - }); - describe('single swap', () => { - describe('swap should be executed correctly', () => { - describe('wethIsEth: false', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - }); - }); - }); - describe('wethIsEth: true', () => { - describe('eth out', async () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - }); - describe('eth in', () => { - test('GivenIn', async () => { - const pathWethBal = { - ...pathBalWeth, - tokens: [...pathBalWeth.tokens].reverse(), - }; - const swap = new Swap({ - chainId, - paths: [pathWethBal], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - test('GivenOut', async () => { - const pathWethBal = { - ...pathBalWeth, - tokens: [...pathBalWeth.tokens].reverse(), - }; - const swap = new Swap({ - chainId, - paths: [pathWethBal], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - }); - }); - }); - }); - - describe('multi-hop swap', () => { - describe('swap should be executed correctly', () => { - describe('path with swaps only', () => { - describe('wethIsEth: false', () => { - const wethIsEth = false; - test('GivenIn', async () => { - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenIn, - }), - wethIsEth, - }); - }); - test('GivenOut', async () => { - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenOut, - }), - wethIsEth, - }); - }); - }); - describe('wethIsEth: true', () => { - const wethIsEth = true; - describe('eth in', async () => { - test('GivenIn', async () => { - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenIn, - }), - wethIsEth, - }); - }); - test('GivenOut', async () => { - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenOut, - }), - wethIsEth, - }); - }); - }); - describe('eth out', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathUsdcWethMulti], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathUsdcWethMulti], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - }); - }); - }); - describe('paths with exit/join', () => { - describe('wethIsEth: false', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - }); - }); - }); - describe('wethIsEth: true', () => { - describe('eth in', async () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - }); - describe('eth out', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [ - pathUsdcWethMulti, - pathUsdcWethJoin, - ], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [ - pathUsdcWethMulti, - pathUsdcWethJoin, - ], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - }); - }); - }); - }); - }); - }); - }); - }); - describe('permit2 signatures', () => { const usePermit2Signatures = true; describe('single swap', () => { @@ -753,99 +392,4 @@ describe('SwapV3', () => { }); }); }); - - describe('boosted', () => { - describe('multi-hop swap', () => { - // USDC[wrap]aUSDC[swap]aUSDT[unwrap]USDT - const pathWithBuffers = { - protocolVersion: 3, - tokens: [ - { - address: USDC.address, - decimals: USDC.decimals, - }, - { - address: stataUSDC.address, - decimals: stataUSDC.decimals, - }, - { - address: stataUSDT.address, - decimals: stataUSDT.decimals, - }, - { - address: USDT.address, - decimals: USDT.decimals, - }, - ], - pools: [ - stataUSDC.address, - boosted_pool.address, - stataUSDT.address, - ], - isBuffer: [true, false, true], - }; - - describe('swap should be executed correctly', () => { - beforeEach(async () => { - await approveTokens( - client, - testAddress, - tokens, - protocolVersion, - ); - }); - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [ - { - ...pathWithBuffers, - inputAmountRaw: 100000000n, - outputAmountRaw: 0n, - } as Path, - ], - swapKind: SwapKind.GivenIn, - }); - // Buffers can have a small difference due to rates so we don't check for 100% match between result and query - await assertSwapExactIn({ - contractToCall: AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - outputTest: { - testExactOutAmount: false, - percentage: 0.001, - }, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [ - { - ...pathWithBuffers, - inputAmountRaw: 0n, - outputAmountRaw: 10000000n, - } as Path, - ], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - inputTest: { - testExactInAmount: false, - percentage: 0.001, - }, - }); - }); - }); - }); - }); }); From b3d730d81b2d22b2f1068d9d178248f6186fc58d Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Mon, 15 Dec 2025 11:52:25 +0000 Subject: [PATCH 07/13] chore: Fix lint. --- test/entities/swaps/v3/swapTestData.json | 4348 +++++++++++----------- 1 file changed, 2148 insertions(+), 2200 deletions(-) diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index 8089fa1ce..752ca0b92 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -1,2240 +1,2188 @@ { - "Single Swap - WETH>USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36035317524420364", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36035317524420364" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36071352841944784", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36071352841944784", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36071352841944784" - } - } - } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" + "Single Swap - WETH>USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36035317524420364", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36035317524420364" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36071352841944784", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36071352841944784", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36071352841944784" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } - } - } - }, - "Single Swap - USDC>WETH": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } - } - }, - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } - } - } - }, - "Single Swap - NOT NATIVE": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } - } - } - }, - "Multihop Swap - WETH>USDC>EURC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "42162899169447476", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" + "Single Swap - USDC>WETH": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } + }, + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } - } - } - }, - "Multihop Swap - EURC>USDC>WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "41102074809553470" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24609406" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24609406", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24609406000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24634015", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24634015000000000000" - } - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "40176740744878721" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40176740744878721", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40176740744878721" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40136564004133842", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40136564004133842" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "25174229" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25174229", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25174229000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25199403", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25199403000000000000" - } - } - } - } - } - }, - "Single Swap: WETH[swap]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36232502910235848", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } } - } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" + "Single Swap - NOT NATIVE": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } } - } } - } - } - }, - "Single Swap: USDC[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" + }, + "Multihop Swap - WETH>USDC>EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" + }, + "Multihop Swap - EURC>USDC>WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["41102074809553470"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24609406"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["40176740744878721"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["25174229"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } } - } } - } - } - }, - "Multihop Swap: WETH[swap]USDC[swap]EURC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "42162899169447476", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" + "Single Swap: WETH[swap]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36232502910235848", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } } - } - } - }, - "Multihop Swap: EURC[swap]USDC[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "41102074809553470" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24609406" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24609406", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24609406000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24634015", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24634015000000000000" + }, + "Single Swap: USDC[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } + } } - } } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "40176740744878721" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40176740744878721", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40176740744878721" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40136564004133842", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40136564004133842" + }, + "Multihop Swap: WETH[swap]USDC[swap]EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "25174229" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25174229", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25174229000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25199403", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25199403000000000000" - } - } } - } - } - }, - "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "576500" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "100000000000000", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "104118574098812" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "104222692672910", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" - } - } - } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "576500" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "104118574098812" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" + "Multihop Swap: EURC[swap]USDC[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["41102074809553470"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24609406"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["40176740744878721"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["25174229"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } } - } } - } - } - }, - "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100949709114218" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100949709114218", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100949709114218" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100848759405103", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100848759405103" + }, + "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["576500"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "100000000000000", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["104118574098812"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "104222692672910", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "594597" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594597", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594597000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595191", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595191000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["576500"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["104118574098812"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } + } } - } } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100872970306657" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100872970306657", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100872970306657" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100772097336350", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100772097336350" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "595049" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595049", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595049000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595644", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595644000000000000" + }, + "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100949709114218"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["594597"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594597", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594597000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595191", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595191000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100872970306657"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100872970306657", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100872970306657" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100772097336350", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100772097336350" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["595049"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595049", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595049000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595644", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595644000000000000" + } + } + } } - } } - } - } - }, - "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "9999530198927941607705" - ], - "amountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "10000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "10000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9999530198927941607705", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9999530198927941607705" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9989530668729013666097", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9989530668729013666097" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "100004734" - ], - "amountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "100000000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100004734", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100004734000000000000" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100104738", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100104738000000000000" + }, + "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["9999530198927941607705"], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530198927941607705", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530198927941607705" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530668729013666097", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530668729013666097" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["100004734"], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004734", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004734000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104738", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104738000000000000" + } + } + } } - } } - } } - } -} \ No newline at end of file +} From 4dd991902a6bf838bfb0c84474b9e0af4644da46 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Tue, 16 Dec 2025 16:12:44 +0000 Subject: [PATCH 08/13] Expose permit2 helpers. --- src/entities/permit2Helper/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/entities/permit2Helper/index.ts b/src/entities/permit2Helper/index.ts index e4ab041ee..670d16042 100644 --- a/src/entities/permit2Helper/index.ts +++ b/src/entities/permit2Helper/index.ts @@ -288,7 +288,7 @@ export class Permit2Helper { } } -const signPermit2 = async ( +export const signPermit2 = async ( client: Client & WalletActions, owner: Address | Account, spender: Address, @@ -320,7 +320,7 @@ const signPermit2 = async ( return { batch, signature }; }; -const getDetails = async ( +export const getDetails = async ( client: Client & PublicActions, token: Address, owner: Address | Account, From e49af6ba410c1e78302265365ba6c46155cd9be1 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Wed, 17 Dec 2025 14:23:44 +0000 Subject: [PATCH 09/13] Refactor swap test logic into separate helpers and clearer organisation in general. --- .../swaps/v3/swap.integration.test.ts | 1098 +--- test/entities/swaps/v3/swapTestConfig.ts | 236 + test/entities/swaps/v3/swapTestData.json | 4706 +++++++++-------- test/lib/utils/swapAssertHelpers.ts | 81 + test/lib/utils/swapBuildHelpers.ts | 78 + test/lib/utils/swapHelpers.ts | 38 +- test/lib/utils/swapQueryHelpers.ts | 54 + test/lib/utils/swapTestDataAccess.ts | 104 + test/lib/utils/swapTestDataHelpers.ts | 266 +- test/lib/utils/swapTestFixture.ts | 178 + test/lib/utils/swapTestRunner.ts | 229 + 11 files changed, 4054 insertions(+), 3014 deletions(-) create mode 100644 test/entities/swaps/v3/swapTestConfig.ts create mode 100644 test/lib/utils/swapAssertHelpers.ts create mode 100644 test/lib/utils/swapBuildHelpers.ts create mode 100644 test/lib/utils/swapQueryHelpers.ts create mode 100644 test/lib/utils/swapTestDataAccess.ts create mode 100644 test/lib/utils/swapTestFixture.ts create mode 100644 test/lib/utils/swapTestRunner.ts diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts index 45d6634ca..854a2a78b 100644 --- a/test/entities/swaps/v3/swap.integration.test.ts +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -1,64 +1,41 @@ // pnpm test ./test/entities/swaps/v3/swap.integration.test.ts import { config } from 'dotenv'; config(); +import { TestActions, Hex } from 'viem'; import { - Address, - createTestClient, - http, - publicActions, - walletActions, - TestActions, - Hex, -} from 'viem'; -import { - CHAINS, - ChainId, - Path, SwapKind, - Swap, - PERMIT2, PublicWalletClient, AddressProvider, - Slippage, - SwapBuildOutputExactIn, - SwapBuildOutputExactOut, - ExactOutQueryOutput, - ExactInQueryOutput, - MAX_UINT256, + Permit2, } from '@/index'; +import { stopAnvilFork } from 'test/anvil/anvil-global-setup'; import { - ANVIL_NETWORKS, - NetworkSetup, - startFork, - stopAnvilFork, -} from 'test/anvil/anvil-global-setup'; -import { POOLS, TOKENS } from 'test/lib/utils/addresses'; -import { - approveSpenderOnPermit2, - approveSpenderOnTokens, - findTokenBalanceSlot, - setTokenBalances, -} from 'test/lib/utils/helper'; + setupForkAndClient, + setupPermit2Approval, + setupPermit2Signature, +} from 'test/lib/utils/swapTestFixture'; +import { TEST_CONSTANTS, tests } from './swapTestConfig'; import { - assertResultExactIn, - assertResultExactOut, - serializeQueryOutput, - deserializeQueryOutput, - serializeCallData, loadSwapTestData, saveSwapTestData, allTestsHaveSavedData, - hasSavedTestData, } from 'test/lib/utils'; +import { + runSwapTest, + runSwapTestWithSignature, + type TestSwapConfig, +} from 'test/lib/utils/swapTestRunner'; import { join, dirname, basename } from 'node:path'; import { fileURLToPath } from 'node:url'; -import { expect } from 'vitest'; // Get the directory of the current test file const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -const swapTestDataPath = join(__dirname, 'swapTestData.json'); +const swapTestDataPath = join( + __dirname, + TEST_CONSTANTS.SWAP_TEST_DATA_FILENAME, +); const jobId = basename(__filename) .split('') @@ -70,245 +47,6 @@ const savedSwapTestData = loadSwapTestData(swapTestDataPath); // Data collection for swap test call data (nested structure) const swapTestData: Record = {}; -// Test configuration constants -const TEST_CONSTANTS = { - ANVIL_TEST_ADDRESS: '0x831eFb058FEdCd16Cd6b9174206DFe452dDCe8C3', // address from mnemonic "you twelve word test phrase boat cat like this example dog car" - BALANCE_MULTIPLIER: 10n, // For setting token balances - slippage: Slippage.fromPercentage('0.1'), - deadline: 999999999999999999n, - defaultOutputTest: { - testExactOutAmount: true, - percentage: 0, - }, - defaultInputTest: { - testExactInAmount: true, - percentage: 0, - }, -} as const; - -type NativePosition = 'input' | 'output' | 'none'; - -type Test = { - name: string; - chainId: ChainId; - anvilNetwork: NetworkSetup; - path: Path; - isNative: NativePosition; - blockNumber?: bigint; - outputTest?: { - testExactOutAmount: boolean; - percentage: number; - }; -}; - -const tests: Test[] = [ - { - name: 'Single Swap: WETH[swap]USDC', - chainId: ChainId.BASE, - anvilNetwork: ANVIL_NETWORKS.BASE, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.BASE].WETH.address, - decimals: TOKENS[ChainId.BASE].WETH.decimals, - }, - { - address: TOKENS[ChainId.BASE].USDC.address, - decimals: TOKENS[ChainId.BASE].USDC.decimals, - }, - ], - pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], // https://balancer.fi/pools/base/v3/0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7 - inputAmountRaw: 10000000000000000n, - outputAmountRaw: 100000000n, - }, - isNative: 'input', - }, - { - name: 'Single Swap: USDC[swap]WETH', - chainId: ChainId.BASE, - anvilNetwork: ANVIL_NETWORKS.BASE, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.BASE].USDC.address, - decimals: TOKENS[ChainId.BASE].USDC.decimals, - }, - { - address: TOKENS[ChainId.BASE].WETH.address, - decimals: TOKENS[ChainId.BASE].WETH.decimals, - }, - ], - pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], - inputAmountRaw: 1000000000n, - outputAmountRaw: 100000000000000000n, - }, - isNative: 'output', - }, - { - name: 'Multihop Swap: WETH[swap]USDC[swap]EURC', - chainId: ChainId.BASE, - anvilNetwork: ANVIL_NETWORKS.BASE, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.BASE].WETH.address, - decimals: TOKENS[ChainId.BASE].WETH.decimals, - }, - { - address: TOKENS[ChainId.BASE].USDC.address, - decimals: TOKENS[ChainId.BASE].USDC.decimals, - }, - { - address: TOKENS[ChainId.BASE].EURC.address, - decimals: TOKENS[ChainId.BASE].EURC.decimals, - }, - ], - pools: [ - '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', - '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', - ], - inputAmountRaw: 10000000000000000n, - outputAmountRaw: 100000000n, - }, - isNative: 'input', - }, - { - name: 'Multihop Swap: EURC[swap]USDC[swap]WETH', - chainId: ChainId.BASE, - anvilNetwork: ANVIL_NETWORKS.BASE, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.BASE].EURC.address, - decimals: TOKENS[ChainId.BASE].EURC.decimals, - }, - { - address: TOKENS[ChainId.BASE].USDC.address, - decimals: TOKENS[ChainId.BASE].USDC.decimals, - }, - { - address: TOKENS[ChainId.BASE].WETH.address, - decimals: TOKENS[ChainId.BASE].WETH.decimals, - }, - ], - pools: [ - '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', - '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', - ], - inputAmountRaw: 100000000n, - outputAmountRaw: 10000000000000000n, - }, - isNative: 'output', - }, - { - name: 'Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC', - chainId: ChainId.SEPOLIA, - anvilNetwork: ANVIL_NETWORKS.SEPOLIA, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.SEPOLIA].WETH.address, - decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, - }, - { - address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, - decimals: - POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, - }, - { - address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, - decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, - }, - ], - pools: [ - POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, - POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, - ], - inputAmountRaw: 100000000000000n, - outputAmountRaw: 600000n, - }, - isNative: 'input', - }, - { - name: 'Multihop Swap With Join: USDC[join]BPT[swap]WETH', - chainId: ChainId.SEPOLIA, - anvilNetwork: ANVIL_NETWORKS.SEPOLIA, - path: { - protocolVersion: 3, - tokens: [ - { - address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, - decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, - }, - { - address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, - decimals: - POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, - }, - { - address: TOKENS[ChainId.SEPOLIA].WETH.address, - decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, - }, - ], - pools: [ - POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, - POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, - ], - inputAmountRaw: 600000n, - outputAmountRaw: 100000000000000n, - }, - isNative: 'output', - }, - { - name: 'Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO', - chainId: ChainId.MAINNET, - anvilNetwork: ANVIL_NETWORKS.MAINNET, - path: { - protocolVersion: 3, - tokens: [ - { - address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC - decimals: 6, - }, - { - address: '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC - decimals: 6, - }, - { - address: '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO - decimals: 18, - }, - { - address: '0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f', // GHO - decimals: 18, - }, - ], - pools: [ - '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC (ERC4626) - '0x85b2b559bc2d21104c4defdd6efca8a20343361d', // Pool - '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO (ERC4626), - ], - isBuffer: [true, false, true], - inputAmountRaw: 10000000000n, - outputAmountRaw: 100000000000000000000n, - }, - isNative: 'none', - blockNumber: 24017736n, - outputTest: { - testExactOutAmount: false, - percentage: 0.001, - }, - }, -]; -// ============================================================================ -// Tests -// ============================================================================ - for (const test of tests) { describe.sequential(test.name, () => { let snapshotPreApprove: Hex | undefined; @@ -323,7 +61,7 @@ for (const test of tests) { beforeAll(async () => { // Only run fork/client setup if at least one test doesn't have saved data if (!allTestsHaveSavedData(test, savedSwapTestData)) { - const setup = await setupForkAndClient(test); + const setup = await setupForkAndClient(test, jobId); fork = setup.fork; client = setup.client; snapshotPreApprove = setup.snapshotPreApprove; @@ -332,41 +70,176 @@ for (const test of tests) { if (test.isNative === 'input') { describe.sequential('native input', () => { it('should handle GivenIn swap', async () => { - await testSwap({ - chainId: test.chainId, - path: test.path, - swapKind: SwapKind.GivenIn, - wethIsEth: true, - fork, - routerAddress, - client, - testAddress, - slippage: TEST_CONSTANTS.slippage, - deadline: TEST_CONSTANTS.deadline, - testName: test.name, - context: 'native input', - subContext: undefined, - }); + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + }, + savedSwapTestData, + swapTestData, + ); }); it('should handle GivenOut swap', async () => { - await testSwap({ - chainId: test.chainId, - path: test.path, - swapKind: SwapKind.GivenOut, - wethIsEth: true, - fork, - routerAddress, - client, - testAddress, - slippage: TEST_CONSTANTS.slippage, - deadline: TEST_CONSTANTS.deadline, - testName: test.name, - context: 'native input', - subContext: undefined, - }); + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + }, + savedSwapTestData, + swapTestData, + ); }); }); } + + describe.sequential('permit2 signature approval', () => { + let permit2: Permit2; + let snapShotPermit2: Hex; + beforeAll(async () => { + // Only run if fork/client were initialized + if (client && fork) { + const { permit2: permit2Sig, snapshot } = + await setupPermit2Signature( + client, + testAddress, + test.path, + routerAddress, + ); + permit2 = permit2Sig; + snapShotPermit2 = snapshot; + } + }); + beforeEach(async () => { + // Only run if fork/client were initialized + if (client && fork) { + // signatures consume the nonce so we need to reset snapshot after each sig test + await client.revert({ + id: snapShotPermit2, + }); + snapShotPermit2 = await client.snapshot(); + } + }); + + if (test.isNative === 'output') { + describe.sequential('native output', () => { + it('should handle GivenIn swap', async () => { + await runSwapTestWithSignature( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 signature approval', + subContext: 'native output', + }, + savedSwapTestData, + swapTestData, + permit2, + ); + }); + it('should handle GivenOut swap', async () => { + await runSwapTestWithSignature( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 signature approval', + subContext: 'native output', + }, + savedSwapTestData, + swapTestData, + permit2, + ); + }); + }); + } + + describe.sequential('token output', () => { + it('should handle GivenIn swap', async () => { + await runSwapTestWithSignature( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: false, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 signature approval', + subContext: 'token output', + outputTest: test.outputTest, + }, + savedSwapTestData, + swapTestData, + permit2, + ); + }); + + it('should handle GivenOut swap', async () => { + await runSwapTestWithSignature( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: false, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 signature approval', + subContext: 'token output', + }, + savedSwapTestData, + swapTestData, + permit2, + ); + }); + }); + }); describe.sequential('permit2 direct approval', () => { beforeAll(async () => { // Only run if fork/client were initialized @@ -384,11 +257,58 @@ for (const test of tests) { if (test.isNative === 'output') { describe.sequential('native output', () => { it('should handle GivenIn swap', async () => { - await testSwap({ + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'native output', + }, + savedSwapTestData, + swapTestData, + ); + }); + it('should handle GivenOut swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + routerAddress, + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: test.name, + context: 'permit2 direct approval', + subContext: 'native output', + }, + savedSwapTestData, + swapTestData, + ); + }); + }); + } + + describe.sequential('token output', () => { + it('should handle GivenIn swap', async () => { + await runSwapTest( + { chainId: test.chainId, path: test.path, swapKind: SwapKind.GivenIn, - wethIsEth: true, + wethIsEth: false, fork, routerAddress, client, @@ -397,15 +317,21 @@ for (const test of tests) { deadline: TEST_CONSTANTS.deadline, testName: test.name, context: 'permit2 direct approval', - subContext: 'native output', - }); - }); - it('should handle GivenOut swap', async () => { - await testSwap({ + subContext: 'token output', + outputTest: test.outputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + + it('should handle GivenOut swap', async () => { + await runSwapTest( + { chainId: test.chainId, path: test.path, swapKind: SwapKind.GivenOut, - wethIsEth: true, + wethIsEth: false, fork, routerAddress, client, @@ -414,48 +340,11 @@ for (const test of tests) { deadline: TEST_CONSTANTS.deadline, testName: test.name, context: 'permit2 direct approval', - subContext: 'native output', - }); - }); - }); - } - - describe.sequential('token output', () => { - it('should handle GivenIn swap', async () => { - await testSwap({ - chainId: test.chainId, - path: test.path, - swapKind: SwapKind.GivenIn, - wethIsEth: false, - fork, - routerAddress, - client, - testAddress, - slippage: TEST_CONSTANTS.slippage, - deadline: TEST_CONSTANTS.deadline, - testName: test.name, - context: 'permit2 direct approval', - subContext: 'token output', - outputTest: test.outputTest, - }); - }); - - it('should handle GivenOut swap', async () => { - await testSwap({ - chainId: test.chainId, - path: test.path, - swapKind: SwapKind.GivenOut, - wethIsEth: false, - fork, - routerAddress, - client, - testAddress, - slippage: TEST_CONSTANTS.slippage, - deadline: TEST_CONSTANTS.deadline, - testName: test.name, - context: 'permit2 direct approval', - subContext: 'token output', - }); + subContext: 'token output', + }, + savedSwapTestData, + swapTestData, + ); }); }); }); @@ -473,492 +362,3 @@ for (const test of tests) { afterAll(async () => { await saveSwapTestData(swapTestDataPath, savedSwapTestData, swapTestData); }); - -// ============================================================================ -// Helper Functions -// ============================================================================ - -// ---------------------------------------------------------------------------- -// Test Data Access Helpers -// ---------------------------------------------------------------------------- - -/** - * Gets test data from the nested structure. - * @param savedData - The saved test data (nested structure) - * @param testName - Name of the test case - * @param context - Test context (e.g., 'native input', 'permit2 direct approval') - * @param subContext - Optional sub-context (e.g., 'native output', 'token output') - * @param swapKind - The swap kind being tested - * @returns The test data if found, undefined otherwise - */ -function getTestData( - savedData: Record, - testName: string, - context: string, - subContext: string | undefined, - swapKind: SwapKind, -): unknown { - const testData = savedData[testName]; - if (!testData || typeof testData !== 'object') { - return undefined; - } - - const testDataObj = testData as Record; - const contextData = testDataObj[context]; - if (!contextData || typeof contextData !== 'object') { - return undefined; - } - - const contextDataObj = contextData as Record; - - // If subContext is provided, navigate to it - if (subContext) { - const subContextData = contextDataObj[subContext]; - if (!subContextData || typeof subContextData !== 'object') { - return undefined; - } - const subContextDataObj = subContextData as Record; - const swapKindKey = - swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; - return subContextDataObj[swapKindKey]; - } - - // No subContext, swapKind is directly under context - const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; - return contextDataObj[swapKindKey]; -} - -/** - * Sets test data in the nested structure. - * @param testData - The test data object to update - * @param testName - Name of the test case - * @param context - Test context (e.g., 'native input', 'permit2 direct approval') - * @param subContext - Optional sub-context (e.g., 'native output', 'token output') - * @param swapKind - The swap kind being tested - * @param data - The data to save - */ -function setTestData( - testData: Record, - testName: string, - context: string, - subContext: string | undefined, - swapKind: SwapKind, - data: { queryOutput: unknown; call: unknown }, -): void { - if (!testData[testName]) { - testData[testName] = {}; - } - const testDataObj = testData[testName] as Record; - - if (!testDataObj[context]) { - testDataObj[context] = {}; - } - const contextDataObj = testDataObj[context] as Record; - - const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; - - if (subContext) { - if (!contextDataObj[subContext]) { - contextDataObj[subContext] = {}; - } - const subContextDataObj = contextDataObj[subContext] as Record< - string, - unknown - >; - subContextDataObj[swapKindKey] = data; - } else { - contextDataObj[swapKindKey] = data; - } -} - -// ---------------------------------------------------------------------------- -// Setup Helpers -// ---------------------------------------------------------------------------- - -/** - * Sets up the fork and test client for integration tests. - * Configures token approvals for Permit2 and creates a snapshot for test isolation. - * @param test - The test configuration - * @returns Fork RPC URL, test client, and pre-approval snapshot - */ -async function setupForkAndClient(test: Test): Promise<{ - fork: { rpcUrl: string }; - client: PublicWalletClient & TestActions; - snapshotPreApprove: Hex; -}> { - const fork = await startFork(test.anvilNetwork, jobId, test.blockNumber); - const client = createTestClient({ - mode: 'anvil', - chain: CHAINS[test.chainId], - transport: http(fork.rpcUrl), - }) - .extend(publicActions) - .extend(walletActions); - - const testAddressCheck = (await client.getAddresses())[0]; - if (testAddressCheck !== TEST_CONSTANTS.ANVIL_TEST_ADDRESS) { - throw Error('Test address mismatch'); - } - - // First step of permit2 flow - user approves Permit2 contract to spend input token - await approveSpenderOnTokens( - client, - TEST_CONSTANTS.ANVIL_TEST_ADDRESS, - [test.path.tokens[0].address], - PERMIT2[test.chainId], - [MAX_UINT256], - ); - - // Uses Special RPC methods to revert state back to same snapshot for each test - // https://github.com/trufflesuite/ganache-cli-archive/blob/master/README.md - const snapshotPreApprove = await client.snapshot(); - - return { fork, client, snapshotPreApprove }; -} - -/** - * Sets up Permit2 approval for the router. - * Reverts to pre-approval snapshot, sets token balances, and approves router via Permit2. - * @param client - The test client - * @param testAddress - Address of the test account - * @param path - The swap path - * @param routerAddress - Address of the router contract - * @param snapshotPreApprove - Snapshot ID before permit2 approval - * @returns New snapshot ID after permit2 approval setup - */ -async function setupPermit2Approval( - client: PublicWalletClient & TestActions, - testAddress: Address, - path: Path, - routerAddress: Address, - snapshotPreApprove: Hex, -): Promise { - // Revert to pre-approval snapshot - await client.revert({ - id: snapshotPreApprove, - }); - const newSnapshot = await client.snapshot(); - - const slot = await findTokenBalanceSlot( - client, - testAddress, - path.tokens[0].address, - ); - - await setTokenBalances( - client, - testAddress, - [path.tokens[0].address], - [slot], - [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], - ); - - // Second step of permit2 flow - user Permit2 approves router to spend input token - await approveSpenderOnPermit2( - client, - testAddress, - path.tokens[0].address, - routerAddress, - ); - - return newSnapshot; -} - -// ---------------------------------------------------------------------------- -// Query/Load Helpers -// ---------------------------------------------------------------------------- - -/** - * Loads query output from saved test data or by querying the swap. - * If saved data exists, it uses that. Otherwise, it queries fresh data from the fork. - * @param savedData - Saved test data (may be undefined) - * @param swap - The Swap instance to query if no saved data exists - * @param fork - Fork RPC URL (required if no saved data) - * @param expectedSwapKind - The expected swap kind to validate against - * @returns The query output matching the expected swap kind - * @throws Error if fork is not available when needed, or if swap kind doesn't match - */ -async function loadQueryOutput< - T extends ExactInQueryOutput | ExactOutQueryOutput, ->( - savedData: unknown, - swap: Swap, - fork: { rpcUrl: string } | undefined, - expectedSwapKind: SwapKind, -): Promise { - const hasSavedData = hasSavedTestData(savedData); - - if (hasSavedData) { - // Use saved query output (skip swap.query() call) - const savedQueryOutput = savedData.queryOutput; - const deserialized = deserializeQueryOutput(savedQueryOutput); - if (deserialized.swapKind !== expectedSwapKind) { - throw new Error( - `Saved query output swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${deserialized.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, - ); - } - return deserialized as T; - } - // Query fresh data - fork must be available - if (!fork) { - throw new Error( - 'Cannot query swap: fork not initialized and no saved test data available', - ); - } - const queryResult = await swap.query(fork.rpcUrl); - if (queryResult.swapKind !== expectedSwapKind) { - throw new Error( - `Query result swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${queryResult.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, - ); - } - return queryResult as T; -} - -// ---------------------------------------------------------------------------- -// Build/Serialize Helpers -// ---------------------------------------------------------------------------- - -/** - * Builds swap call data and serializes it for comparison/saving. - * @param swap - The Swap instance - * @param queryOutput - The query output to build the call from - * @param slippage - Slippage tolerance - * @param deadline - Transaction deadline - * @param wethIsEth - Whether WETH should be treated as native ETH - * @returns The built call and its serialized form - */ -function buildAndSerializeCall( - swap: Swap, - queryOutput: ExactInQueryOutput | ExactOutQueryOutput, - slippage: Slippage, - deadline: bigint, - wethIsEth: boolean, -): { - call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; - serializedCall: unknown; -} { - const call = swap.buildCall({ - slippage, - deadline, - queryOutput, - wethIsEth, - }); - - const serializedCall = serializeCallData(call); - - return { call, serializedCall }; -} - -// ---------------------------------------------------------------------------- -// Assert/Compare Helpers -// ---------------------------------------------------------------------------- - -/** - * Asserts or compares swap test results. - * If saved data exists, compares the serialized call data. - * Otherwise, runs full integration assertions and saves the results. - * @param params - Configuration for assertion/comparison - * @throws Error if client is not available when needed for integration tests - */ -async function assertOrCompareSwapResult({ - hasSavedData, - serializedCall, - savedData, - swap, - chainId, - routerAddress, - client, - testAddress, - call, - queryOutput, - swapKind, - wethIsEth, - outputTest, - inputTest, - testName, - context, - subContext, -}: { - hasSavedData: boolean; - serializedCall: unknown; - savedData: unknown; - swap: Swap; - chainId: ChainId; - routerAddress: Address; - client?: PublicWalletClient & TestActions; - testAddress: Address; - call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; - queryOutput: ExactInQueryOutput | ExactOutQueryOutput; - swapKind: SwapKind; - wethIsEth: boolean; - outputTest?: { - testExactOutAmount: boolean; - percentage: number; - }; - inputTest?: { - testExactInAmount: boolean; - percentage: number; - }; - testName: string; - context: string; - subContext: string | undefined; -}): Promise { - if (hasSavedData && hasSavedTestData(savedData)) { - // Compare with saved call data - // TypeScript now knows savedData is SavedSwapTestData after type guard - expect(serializedCall).to.deep.equal(savedData.call); - } else { - // Run full integration assertions - client must be available - if (!client) { - throw new Error( - 'Cannot run integration assertions: client not initialized and no saved test data available', - ); - } - if (swapKind === SwapKind.GivenIn) { - await assertResultExactIn({ - wethIsEth, - swap, - chainId, - contractToCall: routerAddress, - client, - testAddress, - call: call as SwapBuildOutputExactIn, - outputTest: outputTest || TEST_CONSTANTS.defaultOutputTest, - exactInQueryOutput: queryOutput as ExactInQueryOutput, - }); - } else { - await assertResultExactOut({ - wethIsEth, - swap, - chainId, - contractToCall: routerAddress, - client, - testAddress, - call: call as SwapBuildOutputExactOut, - inputTest: inputTest || TEST_CONSTANTS.defaultInputTest, - exactOutQueryOutput: queryOutput as ExactOutQueryOutput, - }); - } - // Save both query output and call data for new tests - setTestData(swapTestData, testName, context, subContext, swapKind, { - queryOutput: serializeQueryOutput(queryOutput), - call: serializedCall, - }); - } -} - -// ---------------------------------------------------------------------------- -// Main Test Function -// ---------------------------------------------------------------------------- - -/** - * Configuration for running a swap test. - */ -type TestSwapConfig = { - chainId: ChainId; - path: Path; - swapKind: SwapKind; - wethIsEth: boolean; - fork?: { rpcUrl: string }; - routerAddress: Address; - client?: PublicWalletClient & TestActions; - testAddress: Address; - slippage: Slippage; - deadline: bigint; - testName: string; - context: string; - subContext?: string; - outputTest?: { - testExactOutAmount: boolean; - percentage: number; - }; - inputTest?: { - testExactInAmount: boolean; - percentage: number; - }; -}; - -/** - * Executes a swap test by loading query output, building call data, and asserting results. - * Can use saved test data for faster execution or run full integration tests. - * @param config - Test configuration - */ -async function testSwap(config: TestSwapConfig) { - const { - chainId, - path, - swapKind, - wethIsEth, - fork, - routerAddress, - client, - testAddress, - slippage, - deadline, - testName, - context, - subContext, - outputTest = TEST_CONSTANTS.defaultOutputTest, - inputTest = TEST_CONSTANTS.defaultInputTest, - } = config; - const swap = new Swap({ - chainId, - paths: [path], - swapKind, - }); - - const savedData = getTestData( - savedSwapTestData, - testName, - context, - subContext, - swapKind, - ); - const hasSavedData = hasSavedTestData(savedData); - - // Load query output (from saved data or by querying) - const queryOutput = - swapKind === SwapKind.GivenIn - ? await loadQueryOutput( - savedData, - swap, - fork, - SwapKind.GivenIn, - ) - : await loadQueryOutput( - savedData, - swap, - fork, - SwapKind.GivenOut, - ); - - // Build and serialize call - const { call, serializedCall } = buildAndSerializeCall( - swap, - queryOutput, - slippage, - deadline, - wethIsEth, - ); - - // Assert or compare results - await assertOrCompareSwapResult({ - hasSavedData, - serializedCall, - savedData, - swap, - chainId, - routerAddress, - client, - testAddress, - call, - queryOutput, - swapKind, - wethIsEth, - outputTest, - inputTest, - testName, - context, - subContext, - }); -} diff --git a/test/entities/swaps/v3/swapTestConfig.ts b/test/entities/swaps/v3/swapTestConfig.ts new file mode 100644 index 000000000..88dcc8ae4 --- /dev/null +++ b/test/entities/swaps/v3/swapTestConfig.ts @@ -0,0 +1,236 @@ +import { ChainId, Path, Slippage } from '@/index'; +import { ANVIL_NETWORKS, NetworkSetup } from 'test/anvil/anvil-global-setup'; +import { POOLS, TOKENS } from 'test/lib/utils/addresses'; + +// Test configuration constants +export const TEST_CONSTANTS = { + ANVIL_TEST_ADDRESS: '0x831eFb058FEdCd16Cd6b9174206DFe452dDCe8C3', // address from mnemonic "you twelve word test phrase boat cat like this example dog car" + BALANCE_MULTIPLIER: 10n, // For setting token balances + slippage: Slippage.fromPercentage('0.1'), + deadline: 999999999999999999n, + SWAP_TEST_DATA_FILENAME: 'swapTestData.json', + defaultOutputTest: { + testExactOutAmount: true, + percentage: 0, + }, +} as const; + +export type NativePosition = 'input' | 'output' | 'none'; + +export type Test = { + name: string; + chainId: ChainId; + anvilNetwork: NetworkSetup; + path: Path; + isNative: NativePosition; + blockNumber?: bigint; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; +}; + +export const tests: Test[] = [ + { + name: 'Single Swap: WETH[swap]USDC', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + ], + pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], // https://balancer.fi/pools/base/v3/0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7 + inputAmountRaw: 10000000000000000n, + outputAmountRaw: 100000000n, + }, + isNative: 'input', + }, + { + name: 'Single Swap: USDC[swap]WETH', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + ], + pools: ['0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7'], + inputAmountRaw: 1000000000n, + outputAmountRaw: 100000000000000000n, + }, + isNative: 'output', + }, + { + name: 'Multihop Swap: WETH[swap]USDC[swap]EURC', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].EURC.address, + decimals: TOKENS[ChainId.BASE].EURC.decimals, + }, + ], + pools: [ + '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', + '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', + ], + inputAmountRaw: 10000000000000000n, + outputAmountRaw: 100000000n, + }, + isNative: 'input', + }, + { + name: 'Multihop Swap: EURC[swap]USDC[swap]WETH', + chainId: ChainId.BASE, + anvilNetwork: ANVIL_NETWORKS.BASE, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.BASE].EURC.address, + decimals: TOKENS[ChainId.BASE].EURC.decimals, + }, + { + address: TOKENS[ChainId.BASE].USDC.address, + decimals: TOKENS[ChainId.BASE].USDC.decimals, + }, + { + address: TOKENS[ChainId.BASE].WETH.address, + decimals: TOKENS[ChainId.BASE].WETH.decimals, + }, + ], + pools: [ + '0x608382d1627c1f2f939c87d14fdb62d5bcbf561f', + '0x7b4c560f33a71a9f7a500af3c4c65b46fbbafdb7', + ], + inputAmountRaw: 100000000n, + outputAmountRaw: 10000000000000000n, + }, + isNative: 'output', + }, + { + name: 'Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC', + chainId: ChainId.SEPOLIA, + anvilNetwork: ANVIL_NETWORKS.SEPOLIA, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.SEPOLIA].WETH.address, + decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, + }, + { + address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, + decimals: + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, + }, + { + address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, + decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, + }, + ], + pools: [ + POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, + ], + inputAmountRaw: 100000000000000n, + outputAmountRaw: 600000n, + }, + isNative: 'input', + }, + { + name: 'Multihop Swap With Join: USDC[join]BPT[swap]WETH', + chainId: ChainId.SEPOLIA, + anvilNetwork: ANVIL_NETWORKS.SEPOLIA, + path: { + protocolVersion: 3, + tokens: [ + { + address: TOKENS[ChainId.SEPOLIA].USDC_AAVE.address, + decimals: TOKENS[ChainId.SEPOLIA].USDC_AAVE.decimals, + }, + { + address: POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.address, + decimals: + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.decimals, + }, + { + address: TOKENS[ChainId.SEPOLIA].WETH.address, + decimals: TOKENS[ChainId.SEPOLIA].WETH.decimals, + }, + ], + pools: [ + POOLS[ChainId.SEPOLIA].MOCK_USDC_DAI_POOL.id, + POOLS[ChainId.SEPOLIA].MOCK_NESTED_POOL.id, + ], + inputAmountRaw: 600000n, + outputAmountRaw: 100000000000000n, + }, + isNative: 'output', + }, + { + name: 'Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO', + chainId: ChainId.MAINNET, + anvilNetwork: ANVIL_NETWORKS.MAINNET, + path: { + protocolVersion: 3, + tokens: [ + { + address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC + decimals: 6, + }, + { + address: '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC + decimals: 6, + }, + { + address: '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO + decimals: 18, + }, + { + address: '0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f', // GHO + decimals: 18, + }, + ], + pools: [ + '0xd4fa2d31b7968e448877f69a96de69f5de8cd23e', // waEthUSDC (ERC4626) + '0x85b2b559bc2d21104c4defdd6efca8a20343361d', // Pool + '0xc71ea051a5f82c67adcf634c36ffe6334793d24c', // waEthLidoGHO (ERC4626), + ], + isBuffer: [true, false, true], + inputAmountRaw: 10000000000n, + outputAmountRaw: 100000000000000000000n, + }, + isNative: 'none', + blockNumber: 24017736n, + outputTest: { + testExactOutAmount: false, + percentage: 0.001, + }, + }, +]; diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index 752ca0b92..a44a06519 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -1,2188 +1,2648 @@ { - "Single Swap - WETH>USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } + "Single Swap: WETH[swap]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36232502910235848", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } + } + }, + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27346989", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27346989000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a0dd5a0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27319642", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27319642000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36035317524420364", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36035317524420364" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008026b44cb63ed00000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36071352841944784", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36071352841944784", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36071352841944784" - } + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36782051712834578", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36782051712834578" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000082ce88c3947b540000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36818833764547412", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36818833764547412" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" } + } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" } + } } - }, - "Single Swap - USDC>WETH": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } - } + } + } + }, + "Single Swap: USDC[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" }, - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286143408", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286143408000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286429551", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286429551000000000000" } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } } - }, - "Single Swap - NOT NATIVE": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286143408", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286143408000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286429551", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286429551000000000000" } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } } + } }, - "Multihop Swap - WETH>USDC>EURC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24016376"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["42120778391056420"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "42162899169447476", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" } + } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24016376"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["42120778391056420"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" } + } } - }, - "Multihop Swap - EURC>USDC>WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["41102074809553470"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24609406"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24609406", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24609406000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24634015", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24634015000000000000" - } - } - } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["40176740744878721"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40176740744878721", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40176740744878721" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40136564004133842", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40136564004133842" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["25174229"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25174229", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25174229000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25199403", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25199403000000000000" - } - } - } + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } } + } + } + }, + "Multihop Swap: WETH[swap]USDC[swap]EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } }, - "Single Swap: WETH[swap]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "23469866" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23469866", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23469866000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000165c37c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23446396", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23446396000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42915394418564706" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36232502910235848", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42915394418564706", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42915394418564706" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000989e5aec8dd5e60000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42958309812983270", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42958309812983270" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" + } + } + } + }, + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24016376" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "42120778391056420" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } } - }, - "Single Swap: USDC[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } + } + } + }, + "Multihop Swap: EURC[swap]USDC[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "41102074809553470" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24160779" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24160779", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24160779000000000000" } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24184939", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24184939000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } } - }, - "Multihop Swap: WETH[swap]USDC[swap]EURC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24016376"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "41102074809553470" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24160779" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["42120778391056420"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "42162899169447476", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24160779", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24160779000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24184939", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24184939000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } + } + } + }, + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "41102074809553470" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" } + } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24016376"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["42120778391056420"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "24609406" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" } + } } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "40176740744878721" + ], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": [ + "25174229" + ], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } + } + } + }, + "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "576500" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "100000000000000", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "104118574098812" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "104222692672910", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } + } }, - "Multihop Swap: EURC[swap]USDC[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["41102074809553470"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["24609406"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24609406", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24609406000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24634015", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24634015000000000000" - } - } - } + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "576061" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["40176740744878721"], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40176740744878721", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40176740744878721" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40136564004133842", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40136564004133842" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": ["25174229"], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25174229", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25174229000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25199403", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25199403000000000000" - } - } + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576061", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576061000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c7fc0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575484", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575484000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "104159047509227" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104159047509227", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104159047509227" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005ed3ab63d44000000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104263206556736", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104263206556736" } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" + } } + } }, - "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["576500"], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "100000000000000", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" - } + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "576500" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "104118574098812" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } + } + } + } + }, + "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100949709114218" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "594370" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["104118574098812"], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "104222692672910", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" - } + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594370", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594370000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594964", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594964000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100949709114218" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["576500"], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["104118574098812"], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" - } - } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "594370" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594370", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594370000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594964", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594964000000000000" } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } } + } }, - "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["100949709114218"], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100949709114218", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100949709114218" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100848759405103", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100848759405103" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["594597"], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594597", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594597000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595191", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595191000000000000" - } - } - } + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100949709114218" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "594597" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594597", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594597000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595191", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595191000000000000" + } + } + } + }, + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "100872970306657" + ], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["100872970306657"], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100872970306657", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100872970306657" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100772097336350", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100772097336350" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": ["595049"], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595049", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595049000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595644", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595644000000000000" - } - } + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100872970306657", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100872970306657" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100772097336350", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100772097336350" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": [ + "595049" + ], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595049", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595049000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595644", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595644000000000000" + } + } + } + } + } + }, + "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "9999530198927941607705" + ], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530198927941607705", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530198927941607705" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a4286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530668729013666097", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530668729013666097" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 } + ], + "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "100004670" + ], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004670", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004670000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a48eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f779e20000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104674", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104674000000000000" } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" + } } + } }, - "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": ["9999530198927941607705"], - "amountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "10000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "10000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9999530198927941607705", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9999530198927941607705" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9989530668729013666097", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9989530668729013666097" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": ["100004734"], - "amountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "100000000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100004734", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100004734000000000000" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100104738", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100104738000000000000" - } - } - } + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "9999530198927941607705" + ], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530198927941607705", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530198927941607705" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530668729013666097", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530668729013666097" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": [ + "100004734" + ], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004734", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004734000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104738", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104738000000000000" } + } } + } } -} + } +} \ No newline at end of file diff --git a/test/lib/utils/swapAssertHelpers.ts b/test/lib/utils/swapAssertHelpers.ts new file mode 100644 index 000000000..2ee03b4ac --- /dev/null +++ b/test/lib/utils/swapAssertHelpers.ts @@ -0,0 +1,81 @@ +import { Address, TestActions } from 'viem'; +import { + Swap, + ChainId, + SwapKind, + SwapBuildOutputExactIn, + SwapBuildOutputExactOut, + ExactInQueryOutput, + ExactOutQueryOutput, + PublicWalletClient, +} from '@/index'; +import { expect } from 'vitest'; +import { assertResultExactIn, assertResultExactOut } from './swapHelpers'; +import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; + +export async function assertSwapResultWithForkTest({ + swap, + chainId, + routerAddress, + client, + testAddress, + call, + queryOutput, + swapKind, + wethIsEth, + outputTest, +}: { + swap: Swap; + chainId: ChainId; + routerAddress: Address; + client?: PublicWalletClient & TestActions; + testAddress: Address; + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; + queryOutput: ExactInQueryOutput | ExactOutQueryOutput; + swapKind: SwapKind; + wethIsEth: boolean; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; +}): Promise { + // Run full integration assertions - client must be available + if (!client) { + throw new Error( + 'Cannot run integration assertions: client not initialized and no saved test data available', + ); + } + if (swapKind === SwapKind.GivenIn) { + await assertResultExactIn({ + wethIsEth, + swap, + chainId, + contractToCall: routerAddress, + client, + testAddress, + call: call as SwapBuildOutputExactIn, + outputTest: outputTest || TEST_CONSTANTS.defaultOutputTest, + exactInQueryOutput: queryOutput as ExactInQueryOutput, + }); + } else { + await assertResultExactOut({ + wethIsEth, + swap, + chainId, + contractToCall: routerAddress, + client, + testAddress, + call: call as SwapBuildOutputExactOut, + exactOutQueryOutput: queryOutput as ExactOutQueryOutput, + }); + } +} + +export function assertSwapResultWithSavedData( + builtCall: SwapBuildOutputExactIn | SwapBuildOutputExactOut, + savedData: { call: { to: Address; callData: string; value: string } }, +) { + expect(builtCall.callData).to.deep.equal(savedData.call.callData); + expect(builtCall.to).to.equal(savedData.call.to); + expect(builtCall.value).to.equal(BigInt(savedData.call.value)); +} diff --git a/test/lib/utils/swapBuildHelpers.ts b/test/lib/utils/swapBuildHelpers.ts new file mode 100644 index 000000000..0bd4709cf --- /dev/null +++ b/test/lib/utils/swapBuildHelpers.ts @@ -0,0 +1,78 @@ +import { + Swap, + Slippage, + ExactInQueryOutput, + ExactOutQueryOutput, + SwapBuildOutputExactIn, + SwapBuildOutputExactOut, + Permit2, +} from '@/index'; +import { serializeCallData } from './swapTestDataHelpers'; + +/** + * Builds swap call data and serializes it for comparison/saving. + * @param swap - The Swap instance + * @param queryOutput - The query output to build the call from + * @param slippage - Slippage tolerance + * @param deadline - Transaction deadline + * @param wethIsEth - Whether WETH should be treated as native ETH + * @returns The built call and its serialized form + */ +export function buildAndSerializeCall( + swap: Swap, + queryOutput: ExactInQueryOutput | ExactOutQueryOutput, + slippage: Slippage, + deadline: bigint, + wethIsEth: boolean, +): { + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; + serializedCall: unknown; +} { + const call = swap.buildCall({ + slippage, + deadline, + queryOutput, + wethIsEth, + }); + + const serializedCall = serializeCallData(call); + + return { call, serializedCall }; +} + +/** + * Builds swap call data with Permit2 and serializes it for comparison/saving. + * @param swap - The Swap instance + * @param queryOutput - The query output to build the call from + * @param slippage - Slippage tolerance + * @param deadline - Transaction deadline + * @param wethIsEth - Whether WETH should be treated as native ETH + * @param permit2 - The Permit2 signature + * @returns The built call and its serialized form + */ +export function buildAndSerializeCallWithPermit2( + swap: Swap, + queryOutput: ExactInQueryOutput | ExactOutQueryOutput, + slippage: Slippage, + deadline: bigint, + wethIsEth: boolean, + permit2: Permit2, +): { + call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; + serializedCall: unknown; +} { + const call = swap.buildCallWithPermit2( + { + slippage, + deadline, + queryOutput, + wethIsEth, + }, + permit2, + ); + + const serializedCall = serializeCallData(call); + + return { call, serializedCall }; +} + diff --git a/test/lib/utils/swapHelpers.ts b/test/lib/utils/swapHelpers.ts index dc2357b42..e53922bf5 100644 --- a/test/lib/utils/swapHelpers.ts +++ b/test/lib/utils/swapHelpers.ts @@ -206,10 +206,6 @@ export async function assertSwapExactOut({ swap, wethIsEth, usePermit2Signatures = false, - inputTest = { - testExactInAmount: true, - percentage: 0, - }, }: { contractToCall: Address; client: PublicWalletClient & TestActions; @@ -218,10 +214,6 @@ export async function assertSwapExactOut({ swap: Swap; wethIsEth: boolean; usePermit2Signatures?: boolean; - inputTest?: { - testExactInAmount: boolean; - percentage: number; - }; }) { const testAddress = (await client.getAddresses())[0]; const slippage = Slippage.fromPercentage('0.1'); @@ -271,7 +263,6 @@ export async function assertSwapExactOut({ client, testAddress, call, - inputTest, exactOutQueryOutput: expected, }); } @@ -284,7 +275,6 @@ export async function assertResultExactOut({ client, testAddress, call, - inputTest, exactOutQueryOutput, }: { wethIsEth: boolean; @@ -294,10 +284,6 @@ export async function assertResultExactOut({ client: PublicWalletClient & TestActions; testAddress: Address; call: SwapBuildOutputExactOut; - inputTest: { - testExactInAmount: boolean; - percentage: number; - }; exactOutQueryOutput: ExactOutQueryOutput; }) { if (exactOutQueryOutput.swapKind !== SwapKind.GivenOut) @@ -347,23 +333,9 @@ export async function assertResultExactOut({ expectedTokenOutDelta = 0n; } - if (inputTest.testExactInAmount) - expect(balanceDeltas).to.deep.eq([ - expectedEthDelta, - expectedTokenInDelta, - expectedTokenOutDelta, - ]); - else { - // Here we check that output diff is within an acceptable tolerance. - // !!! This should only be used in the case of buffers as all other cases can be equal - expect(balanceDeltas[0]).to.eq(expectedEthDelta); - expect(balanceDeltas[2]).to.eq(expectedTokenOutDelta); - expect( - areBigIntsWithinPercent( - balanceDeltas[1], - expectedTokenInDelta, - inputTest.percentage, - ), - ).toBe(true); - } + expect(balanceDeltas).to.deep.eq([ + expectedEthDelta, + expectedTokenInDelta, + expectedTokenOutDelta, + ]); } diff --git a/test/lib/utils/swapQueryHelpers.ts b/test/lib/utils/swapQueryHelpers.ts new file mode 100644 index 000000000..5d2ea2546 --- /dev/null +++ b/test/lib/utils/swapQueryHelpers.ts @@ -0,0 +1,54 @@ +import { + Swap, + SwapKind, + ExactInQueryOutput, + ExactOutQueryOutput, +} from '@/index'; +import { deserializeQueryOutput, hasSavedTestData } from './swapTestDataHelpers'; + +/** + * Loads query output from saved test data or by querying the swap. + * If saved data exists, it uses that. Otherwise, it queries fresh data from the fork. + * @param savedData - Saved test data (may be undefined) + * @param swap - The Swap instance to query if no saved data exists + * @param fork - Fork RPC URL (required if no saved data) + * @param expectedSwapKind - The expected swap kind to validate against + * @returns The query output matching the expected swap kind + * @throws Error if fork is not available when needed, or if swap kind doesn't match + */ +export async function loadQueryOutput< + T extends ExactInQueryOutput | ExactOutQueryOutput, +>( + savedData: unknown, + swap: Swap, + fork: { rpcUrl: string } | undefined, + expectedSwapKind: SwapKind, +): Promise { + const hasSavedData = hasSavedTestData(savedData); + + if (hasSavedData) { + // Use saved query output (skip swap.query() call) + const savedQueryOutput = savedData.queryOutput; + const deserialized = deserializeQueryOutput(savedQueryOutput); + if (deserialized.swapKind !== expectedSwapKind) { + throw new Error( + `Saved query output swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${deserialized.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, + ); + } + return deserialized as T; + } + // Query fresh data - fork must be available + if (!fork) { + throw new Error( + 'Cannot query swap: fork not initialized and no saved test data available', + ); + } + const queryResult = await swap.query(fork.rpcUrl); + if (queryResult.swapKind !== expectedSwapKind) { + throw new Error( + `Query result swap kind mismatch: expected ${expectedSwapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}, got ${queryResult.swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'}`, + ); + } + return queryResult as T; +} + diff --git a/test/lib/utils/swapTestDataAccess.ts b/test/lib/utils/swapTestDataAccess.ts new file mode 100644 index 000000000..8ad5d15e5 --- /dev/null +++ b/test/lib/utils/swapTestDataAccess.ts @@ -0,0 +1,104 @@ +import { SwapKind, Permit2 } from '@/index'; +import { serializePermit2 } from './swapTestDataHelpers'; + +/** + * Type for the setTestData function used to save test data. + */ +export type SetTestDataFunction = typeof setTestData; + +/** + * Gets test data from the nested structure. + * @param savedData - The saved test data (nested structure) + * @param testName - Name of the test case + * @param context - Test context (e.g., 'native input', 'permit2 direct approval') + * @param subContext - Optional sub-context (e.g., 'native output', 'token output') + * @param swapKind - The swap kind being tested + * @returns The test data if found, undefined otherwise + */ +export function getTestData( + savedData: Record, + testName: string, + context: string, + subContext: string | undefined, + swapKind: SwapKind, +): unknown { + const testData = savedData[testName]; + if (!testData || typeof testData !== 'object') { + return undefined; + } + + const testDataObj = testData as Record; + const contextData = testDataObj[context]; + if (!contextData || typeof contextData !== 'object') { + return undefined; + } + + const contextDataObj = contextData as Record; + + // If subContext is provided, navigate to it + if (subContext) { + const subContextData = contextDataObj[subContext]; + if (!subContextData || typeof subContextData !== 'object') { + return undefined; + } + const subContextDataObj = subContextData as Record; + const swapKindKey = + swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + return subContextDataObj[swapKindKey]; + } + + // No subContext, swapKind is directly under context + const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + return contextDataObj[swapKindKey]; +} + +/** + * Sets test data in the nested structure. + * @param testData - The test data object to update + * @param testName - Name of the test case + * @param context - Test context (e.g., 'native input', 'permit2 direct approval') + * @param subContext - Optional sub-context (e.g., 'native output', 'token output') + * @param swapKind - The swap kind being tested + * @param data - The data to save (queryOutput, call, and optional permit2) + * @param permit2 - Optional Permit2 to save (only for "permit2 signature approval" tests) + */ +export function setTestData( + testData: Record, + testName: string, + context: string, + subContext: string | undefined, + swapKind: SwapKind, + data: { queryOutput: unknown; call: unknown }, + permit2?: Permit2, +): void { + // Include permit2 in data if provided + const dataToSave = permit2 + ? { ...data, permit2: serializePermit2(permit2) } + : data; + + if (!testData[testName]) { + testData[testName] = {}; + } + const testDataObj = testData[testName] as Record; + + if (!testDataObj[context]) { + testDataObj[context] = {}; + } + const contextDataObj = testDataObj[context] as Record; + + const swapKindKey = swapKind === SwapKind.GivenIn ? 'GivenIn' : 'GivenOut'; + + if (subContext) { + if (!contextDataObj[subContext]) { + contextDataObj[subContext] = {}; + } + const subContextDataObj = contextDataObj[subContext] as Record< + string, + unknown + >; + subContextDataObj[swapKindKey] = dataToSave; + } else { + contextDataObj[swapKindKey] = dataToSave; + } +} + diff --git a/test/lib/utils/swapTestDataHelpers.ts b/test/lib/utils/swapTestDataHelpers.ts index 22cfef5ac..3d2e8b6ab 100644 --- a/test/lib/utils/swapTestDataHelpers.ts +++ b/test/lib/utils/swapTestDataHelpers.ts @@ -1,4 +1,4 @@ -import { Address } from 'viem'; +import { Address, Hex } from 'viem'; import { readFileSync } from 'node:fs'; import { writeFile } from 'node:fs/promises'; import { TokenAmount } from '@/entities/tokenAmount'; @@ -9,6 +9,7 @@ import { ExactOutQueryOutput, SwapBuildOutputExactIn, SwapBuildOutputExactOut, + Permit2, } from '@/index'; // JSON serialization utility @@ -320,6 +321,189 @@ export function serializeCallData( }; } +/** + * Serializes a Permit2 object to JSON-serializable format. + * @param permit2 - The Permit2 object to serialize + * @returns Serialized Permit2 data + */ +export function serializePermit2(permit2: Permit2): unknown { + return { + batch: { + details: permit2.batch.details.map((detail) => ({ + token: detail.token, + amount: detail.amount.toString(), + expiration: detail.expiration, + nonce: detail.nonce, + })), + spender: permit2.batch.spender, + sigDeadline: permit2.batch.sigDeadline.toString(), + }, + signature: permit2.signature, + }; +} + +/** + * Deserializes a Permit2 object from JSON. + * Validates the structure and data before creating the Permit2 instance. + * @param serialized - The serialized Permit2 data + * @returns A Permit2 instance + * @throws Error if the data structure is invalid or validation fails + */ +export function deserializePermit2(serialized: unknown): Permit2 { + if (typeof serialized !== 'object' || serialized === null) { + throw new Error( + `Invalid serialized Permit2: expected object, got ${typeof serialized}`, + ); + } + + const data = serialized as { + batch?: { + details?: unknown[]; + spender?: Address; + sigDeadline?: string; + }; + signature?: Hex; + }; + + if (!data.batch || typeof data.batch !== 'object') { + throw new Error( + 'Invalid serialized Permit2: missing or invalid "batch" field', + ); + } + + if (!Array.isArray(data.batch.details)) { + throw new Error( + 'Invalid serialized Permit2: batch.details must be an array', + ); + } + + if (!data.batch.spender || typeof data.batch.spender !== 'string') { + throw new Error( + 'Invalid serialized Permit2: batch.spender must be a valid address string', + ); + } + + if (!/^0x[a-fA-F0-9]{40}$/.test(data.batch.spender)) { + throw new Error( + `Invalid serialized Permit2: batch.spender "${data.batch.spender}" is not a valid Ethereum address`, + ); + } + + if (!data.batch.sigDeadline || typeof data.batch.sigDeadline !== 'string') { + throw new Error( + 'Invalid serialized Permit2: batch.sigDeadline must be a string', + ); + } + + let sigDeadlineBigInt: bigint; + try { + sigDeadlineBigInt = BigInt(data.batch.sigDeadline); + } catch { + throw new Error( + `Invalid serialized Permit2: batch.sigDeadline "${data.batch.sigDeadline}" cannot be converted to BigInt`, + ); + } + + if (sigDeadlineBigInt < 0n) { + throw new Error( + `Invalid serialized Permit2: batch.sigDeadline cannot be negative, got ${data.batch.sigDeadline}`, + ); + } + + if (!data.signature || typeof data.signature !== 'string') { + throw new Error( + 'Invalid serialized Permit2: signature must be a valid hex string', + ); + } + + // Validate signature is a hex string + if (!/^0x[a-fA-F0-9]+$/.test(data.signature)) { + throw new Error( + `Invalid serialized Permit2: signature "${data.signature}" is not a valid hex string`, + ); + } + + // Deserialize details array + const details = data.batch.details.map((detail, index) => { + if (typeof detail !== 'object' || detail === null) { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}] must be an object`, + ); + } + + const detailData = detail as { + token?: Address; + amount?: string; + expiration?: number; + nonce?: number; + }; + + if (!detailData.token || typeof detailData.token !== 'string') { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].token must be a valid address string`, + ); + } + + if (!/^0x[a-fA-F0-9]{40}$/.test(detailData.token)) { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].token "${detailData.token}" is not a valid Ethereum address`, + ); + } + + if (!detailData.amount || typeof detailData.amount !== 'string') { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].amount must be a string`, + ); + } + + let amountBigInt: bigint; + try { + amountBigInt = BigInt(detailData.amount); + } catch { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].amount "${detailData.amount}" cannot be converted to BigInt`, + ); + } + + if (amountBigInt < 0n) { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].amount cannot be negative, got ${detailData.amount}`, + ); + } + + if ( + typeof detailData.expiration !== 'number' || + detailData.expiration < 0 + ) { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].expiration must be a non-negative number, got ${detailData.expiration}`, + ); + } + + if (typeof detailData.nonce !== 'number' || detailData.nonce < 0) { + throw new Error( + `Invalid serialized Permit2: batch.details[${index}].nonce must be a non-negative number, got ${detailData.nonce}`, + ); + } + + return { + token: detailData.token, + amount: amountBigInt, + expiration: detailData.expiration, + nonce: detailData.nonce, + }; + }); + + return { + batch: { + details, + spender: data.batch.spender, + sigDeadline: sigDeadlineBigInt, + }, + signature: data.signature, + }; +} + /** * Loads swap test data from a JSON file. * Returns an empty object if the file doesn't exist or can't be read. @@ -395,26 +579,51 @@ export async function saveSwapTestData( /** * Type representing saved swap test data with serialized query output and call data. + * permit2 is optional and only present for "permit2 signature approval" tests. */ export type SavedSwapTestData = { queryOutput: unknown; - call: unknown; + call: { + to: Address; + callData: string; // Hex string in JSON + value: string; // Serialized as string in JSON + }; + permit2?: unknown; }; /** * Type guard to check if data is valid saved swap test data. * Valid saved data must be an object with both 'queryOutput' and 'call' properties. + * The 'call' property must be an object with 'to', 'callData', and 'value' properties. + * 'permit2' is optional and only present for "permit2 signature approval" tests. * @param data - Data to check * @returns True if data is valid SavedSwapTestData, false otherwise */ export function hasSavedTestData(data: unknown): data is SavedSwapTestData { - return ( - data !== undefined && - data !== null && - typeof data === 'object' && - 'queryOutput' in data && - 'call' in data - ); + if (data === undefined || data === null || typeof data !== 'object') { + return false; + } + + const obj = data as Record; + + // Check top-level structure + if (!('queryOutput' in obj) || !('call' in obj)) { + return false; + } + + // Check that call is an object with required properties + const call = obj.call; + if ( + typeof call !== 'object' || + call === null || + !('to' in call) || + !('callData' in call) || + !('value' in call) + ) { + return false; + } + + return true; } /** @@ -494,5 +703,44 @@ export function allTestsHaveSavedData( return false; } + // Check permit2 signature approval tests + const permit2Signature = testDataObj['permit2 signature approval']; + if (!permit2Signature || typeof permit2Signature !== 'object') { + return false; + } + const permit2SignatureObj = permit2Signature as Record; + + // Check native output tests (if applicable) + if (test.isNative === 'output') { + const nativeOutput = permit2SignatureObj['native output']; + if ( + !nativeOutput || + typeof nativeOutput !== 'object' || + !hasSavedTestData( + (nativeOutput as Record).GivenIn, + ) || + !hasSavedTestData( + (nativeOutput as Record).GivenOut, + ) + ) { + return false; + } + } + + // Check token output tests (always present) + const tokenOutputSignature = permit2SignatureObj['token output']; + if ( + !tokenOutputSignature || + typeof tokenOutputSignature !== 'object' || + !hasSavedTestData( + (tokenOutputSignature as Record).GivenIn, + ) || + !hasSavedTestData( + (tokenOutputSignature as Record).GivenOut, + ) + ) { + return false; + } + return true; } diff --git a/test/lib/utils/swapTestFixture.ts b/test/lib/utils/swapTestFixture.ts new file mode 100644 index 000000000..80a752902 --- /dev/null +++ b/test/lib/utils/swapTestFixture.ts @@ -0,0 +1,178 @@ +import { Address, Hex, TestActions } from 'viem'; +import { createTestClient, http, publicActions, walletActions } from 'viem'; +import { + CHAINS, + ChainId, + Path, + PERMIT2, + MAX_UINT256, + PublicWalletClient, + PermitDetails, + getDetails, + signPermit2, + Permit2, +} from '@/index'; +import { startFork } from '../../anvil/anvil-global-setup'; +import { + approveSpenderOnTokens, + findTokenBalanceSlot, + setTokenBalances, + approveSpenderOnPermit2, +} from './helper'; +import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; +import type { Test } from '../../entities/swaps/v3/swapTestConfig'; + +/** + * Sets up the fork and test client for integration tests. + * Configures token approvals for Permit2 and creates a snapshot for test isolation. + * @param test - The test configuration + * @param jobId - Job ID for fork management + * @returns Fork RPC URL, test client, and pre-approval snapshot + */ +export async function setupForkAndClient( + test: Test, + jobId: number, +): Promise<{ + fork: { rpcUrl: string }; + client: PublicWalletClient & TestActions; + snapshotPreApprove: Hex; +}> { + const fork = await startFork(test.anvilNetwork, jobId, test.blockNumber); + const client = createTestClient({ + mode: 'anvil', + chain: CHAINS[test.chainId], + transport: http(fork.rpcUrl), + }) + .extend(publicActions) + .extend(walletActions); + + const testAddressCheck = (await client.getAddresses())[0]; + if (testAddressCheck !== TEST_CONSTANTS.ANVIL_TEST_ADDRESS) { + throw Error('Test address mismatch'); + } + + // First step of permit2 flow - user approves Permit2 contract to spend input token (this is needed for direct or signature approval) + await approveSpenderOnTokens( + client, + TEST_CONSTANTS.ANVIL_TEST_ADDRESS, + [test.path.tokens[0].address], + PERMIT2[test.chainId], + [MAX_UINT256], + ); + + // Uses Special RPC methods to revert state back to same snapshot for each test + // https://github.com/trufflesuite/ganache-cli-archive/blob/master/README.md + const snapshotPreApprove = await client.snapshot(); + + return { fork, client, snapshotPreApprove }; +} + +/** + * Sets up Permit2 approval for the router. + * Reverts to pre-approval snapshot, sets token balances, and approves router via Permit2. + * @param client - The test client + * @param testAddress - Address of the test account + * @param path - The swap path + * @param routerAddress - Address of the router contract + * @param snapshotPreApprove - Snapshot ID before permit2 approval + * @returns New snapshot ID after permit2 approval setup + */ +export async function setupPermit2Approval( + client: PublicWalletClient & TestActions, + testAddress: Address, + path: Path, + routerAddress: Address, + snapshotPreApprove: Hex, +): Promise { + // Revert to pre-approval snapshot + await client.revert({ + id: snapshotPreApprove, + }); + const newSnapshot = await client.snapshot(); + + const slot = await findTokenBalanceSlot( + client, + testAddress, + path.tokens[0].address, + ); + + await setTokenBalances( + client, + testAddress, + [path.tokens[0].address], + [slot], + [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], + ); + + // Second step of permit2 flow - user Permit2 approves router to spend input token + await approveSpenderOnPermit2( + client, + testAddress, + path.tokens[0].address, + routerAddress, + ); + + return newSnapshot; +} + +/** + * Sets up Permit2 signature approval for the router. + * Sets token balances, approves router via Permit2, builds permit details, and signs. + * @param client - The test client + * @param testAddress - Address of the test account + * @param path - The swap path + * @param routerAddress - Address of the router contract + * @returns Permit2 signature and snapshot ID after setup + */ +export async function setupPermit2Signature( + client: PublicWalletClient & TestActions, + testAddress: Address, + path: Path, + routerAddress: Address, +): Promise<{ + permit2: Permit2; + snapshot: Hex; +}> { + const slot = await findTokenBalanceSlot( + client, + testAddress, + path.tokens[0].address, + ); + + await setTokenBalances( + client, + testAddress, + [path.tokens[0].address], + [slot], + [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], + ); + + await approveSpenderOnPermit2( + client, + testAddress, + path.tokens[0].address, + routerAddress, + ); + + // build permit details + const details: PermitDetails[] = [ + await getDetails( + client, + path.tokens[0].address, + testAddress, + routerAddress, + ), + ]; + + // sign permit2 + const permit2 = await signPermit2( + client, + testAddress, + routerAddress, + details, + ); + + const snapshot = await client.snapshot(); + + return { permit2, snapshot }; +} diff --git a/test/lib/utils/swapTestRunner.ts b/test/lib/utils/swapTestRunner.ts new file mode 100644 index 000000000..bba9e3c62 --- /dev/null +++ b/test/lib/utils/swapTestRunner.ts @@ -0,0 +1,229 @@ +import { Address, TestActions } from 'viem'; +import { + ChainId, + Path, + SwapKind, + Swap, + Slippage, + ExactInQueryOutput, + ExactOutQueryOutput, + PublicWalletClient, + Permit2, +} from '@/index'; +import { loadQueryOutput } from './swapQueryHelpers'; +import { + buildAndSerializeCall, + buildAndSerializeCallWithPermit2, +} from './swapBuildHelpers'; +import { + assertSwapResultWithForkTest, + assertSwapResultWithSavedData, +} from './swapAssertHelpers'; +import { getTestData, setTestData } from './swapTestDataAccess'; +import { + hasSavedTestData, + deserializePermit2, + serializeQueryOutput, +} from './swapTestDataHelpers'; +import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; + +/** + * Configuration for running a swap test. + */ +export type TestSwapConfig = { + chainId: ChainId; + path: Path; + swapKind: SwapKind; + wethIsEth: boolean; + fork?: { rpcUrl: string }; + routerAddress: Address; + client?: PublicWalletClient & TestActions; + testAddress: Address; + slippage: Slippage; + deadline: bigint; + testName: string; + context: string; + subContext?: string; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; +}; + +/** + * Core swap test execution logic shared between regular and permit2 tests. + * @param config - Test configuration + * @param savedSwapTestData - Saved test data from file + * @param swapTestData - Test data object to update with new results + * @param permit2ToUse - Optional Permit2 signature to use for building the call + */ +async function executeSwapTestCore( + config: TestSwapConfig, + savedSwapTestData: Record, + swapTestData: Record, + permit2ToUse?: Permit2, +): Promise { + const { + chainId, + path, + swapKind, + wethIsEth, + fork, + routerAddress, + client, + testAddress, + slippage, + deadline, + testName, + context, + subContext, + outputTest = TEST_CONSTANTS.defaultOutputTest, + } = config; + + const swap = new Swap({ + chainId, + paths: [path], + swapKind, + }); + + const savedData = getTestData( + savedSwapTestData, + testName, + context, + subContext, + swapKind, + ); + + // Load query output (from saved data or by querying) + const queryOutput = + swapKind === SwapKind.GivenIn + ? await loadQueryOutput( + savedData, + swap, + fork, + SwapKind.GivenIn, + ) + : await loadQueryOutput( + savedData, + swap, + fork, + SwapKind.GivenOut, + ); + + // Build and serialize call (use permit2 variant if permit2 is provided) + const { call, serializedCall } = permit2ToUse + ? buildAndSerializeCallWithPermit2( + swap, + queryOutput, + slippage, + deadline, + wethIsEth, + permit2ToUse, + ) + : buildAndSerializeCall( + swap, + queryOutput, + slippage, + deadline, + wethIsEth, + ); + + if (hasSavedTestData(savedData)) { + assertSwapResultWithSavedData(call, savedData); + return; + } + + // Assert or compare results + await assertSwapResultWithForkTest({ + swap, + chainId, + routerAddress, + client, + testAddress, + call, + queryOutput, + swapKind, + wethIsEth, + outputTest, + }); + + // Save both query output and call data for new tests + // Include permit2 if context is "permit2 signature approval" + setTestData( + swapTestData, + testName, + context, + subContext, + swapKind, + { + queryOutput: serializeQueryOutput(queryOutput), + call: serializedCall, + }, + context === 'permit2 signature approval' ? permit2ToUse : undefined, + ); +} + +/** + * Executes a swap test by loading query output, building call data, and asserting results. + * Can use saved test data for faster execution or run full integration tests. + * @param config - Test configuration + * @param savedSwapTestData - Saved test data from file + * @param swapTestData - Test data object to update with new results + */ +export async function runSwapTest( + config: TestSwapConfig, + savedSwapTestData: Record, + swapTestData: Record, +): Promise { + return executeSwapTestCore( + config, + savedSwapTestData, + swapTestData, + undefined, + ); +} + +/** + * Executes a swap test with Permit2 signature by loading query output, building call data, and asserting results. + * Can use saved test data for faster execution or run full integration tests. + * @param config - Test configuration + * @param savedSwapTestData - Saved test data from file + * @param swapTestData - Test data object to update with new results + * @param permit2 - Optional Permit2 signature. Required when building new calls, optional when using saved data. + */ +export async function runSwapTestWithSignature( + config: TestSwapConfig, + savedSwapTestData: Record, + swapTestData: Record, + permit2?: Permit2, +): Promise { + const { testName, context, subContext, swapKind } = config; + + const savedData = getTestData( + savedSwapTestData, + testName, + context, + subContext, + swapKind, + ); + + // Load permit2 from saved data if we have saved data but no permit2 parameter + let permit2ToUse = permit2; + if (!permit2 && hasSavedTestData(savedData) && savedData.permit2) { + permit2ToUse = deserializePermit2(savedData.permit2); + } + + // If we don't have saved data, permit2 is required + if (!permit2ToUse) { + throw new Error( + 'Cannot build call with permit2: permit2 is required when no saved test data is available', + ); + } + + return executeSwapTestCore( + config, + savedSwapTestData, + swapTestData, + permit2ToUse, + ); +} From 95c4d77186a2c24a764aa6dbc12ceb6c6b14fe51 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Wed, 17 Dec 2025 14:38:31 +0000 Subject: [PATCH 10/13] Remove old V3 swap tests in favour of new. --- .../swaps/v3/swapV3.integration.test.ts | 395 ------------------ test/validateAllNetworks.test.ts | 37 +- 2 files changed, 23 insertions(+), 409 deletions(-) delete mode 100644 test/entities/swaps/v3/swapV3.integration.test.ts diff --git a/test/entities/swaps/v3/swapV3.integration.test.ts b/test/entities/swaps/v3/swapV3.integration.test.ts deleted file mode 100644 index 355cf58f4..000000000 --- a/test/entities/swaps/v3/swapV3.integration.test.ts +++ /dev/null @@ -1,395 +0,0 @@ -// pnpm test test/entities/swaps/v3/swapV3.integration.test.ts -import { config } from 'dotenv'; -config(); -import { - Address, - createTestClient, - http, - parseEther, - publicActions, - walletActions, - TestActions, - Hex, -} from 'viem'; -import { - CHAINS, - ChainId, - SwapKind, - Swap, - PERMIT2, - PublicWalletClient, -} from '@/index'; -import { Path } from '@/entities/swap/paths/types'; -import { AddressProvider } from '@/entities/inputValidator/utils/addressProvider'; - -import { - approveSpenderOnTokens, - approveTokens, - setTokenBalances, -} from 'test/lib/utils/helper'; -import { ANVIL_NETWORKS, startFork } from 'test/anvil/anvil-global-setup'; -import { POOLS, TOKENS } from 'test/lib/utils/addresses'; -import { - assertSwapExactIn, - assertSwapExactOut, -} from 'test/lib/utils/swapHelpers'; - -const protocolVersion = 3; -const chainId = ChainId.SEPOLIA; - -const BAL = TOKENS[chainId].BAL; -const WETH = TOKENS[chainId].WETH; -const USDC = TOKENS[chainId].USDC_AAVE; -const DAI = TOKENS[chainId].DAI_AAVE; -const USDC_DAI_BPT = POOLS[chainId].MOCK_USDC_DAI_POOL; - -describe('SwapV3', () => { - let client: PublicWalletClient & TestActions; - let testAddress: Address; - let rpcUrl: string; - let snapshot: Hex; - let pathBalWeth: Path; - let pathMultiSwap: Path; - let pathWithExit: Path; - let tokens: Address[]; - - beforeAll(async () => { - // weth [swap] bal - pathBalWeth = { - protocolVersion, - tokens: [ - { - address: BAL.address, - decimals: BAL.decimals, - }, - { - address: WETH.address, - decimals: WETH.decimals, - }, - ], - pools: [POOLS[chainId].MOCK_WETH_BAL_POOL.id], - inputAmountRaw: 100000000000n, - outputAmountRaw: 100000000000n, - }; - - // weth [swap] bal [swap] dai [swap] usdc - pathMultiSwap = { - protocolVersion, - tokens: [ - { - address: WETH.address, - decimals: WETH.decimals, - }, - { - address: BAL.address, - decimals: BAL.decimals, - }, - { - address: DAI.address, - decimals: DAI.decimals, - }, - { - address: USDC.address, - decimals: USDC.decimals, - }, - ], - pools: [ - POOLS[chainId].MOCK_WETH_BAL_POOL.id, - POOLS[chainId].MOCK_BAL_DAI_POOL.id, - POOLS[chainId].MOCK_USDC_DAI_POOL.id, - ], - inputAmountRaw: 100000000000000n, - outputAmountRaw: 2000000n, - }; - - // weth [swap] bpt [exit] usdc - pathWithExit = { - protocolVersion, - tokens: [ - { - address: WETH.address, - decimals: WETH.decimals, - }, - { - address: USDC_DAI_BPT.address, - decimals: USDC_DAI_BPT.decimals, - }, - { - address: USDC.address, - decimals: USDC.decimals, - }, - ], - pools: [ - POOLS[chainId].MOCK_NESTED_POOL.id, - POOLS[chainId].MOCK_USDC_DAI_POOL.id, - ], - inputAmountRaw: 100000000000000n, - outputAmountRaw: 6000000n, - }; - - const fork = await startFork(ANVIL_NETWORKS.SEPOLIA); - rpcUrl = fork.rpcUrl; - client = createTestClient({ - mode: 'anvil', - chain: CHAINS[chainId], - transport: http(rpcUrl), - }) - .extend(publicActions) - .extend(walletActions); - - testAddress = (await client.getAddresses())[0]; - - tokens = [WETH.address, BAL.address, USDC.address]; - - await setTokenBalances( - client, - testAddress, - tokens, - [WETH.slot, BAL.slot, USDC.slot] as number[], - [parseEther('100'), parseEther('100'), 100000000000n], - ); - - await approveSpenderOnTokens( - client, - testAddress, - tokens, - PERMIT2[chainId], - ); - - // Uses Special RPC methods to revert state back to same snapshot for each test - // https://github.com/trufflesuite/ganache-cli-archive/blob/master/README.md - snapshot = await client.snapshot(); - }); - - beforeEach(async () => { - await client.revert({ - id: snapshot, - }); - snapshot = await client.snapshot(); - }); - - describe('permit2 signatures', () => { - const usePermit2Signatures = true; - describe('single swap', () => { - describe('swap should be executed correctly', () => { - describe('wethIsEth: false', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - usePermit2Signatures, - }); - }); - }); - describe('wethIsEth: true', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - usePermit2Signatures, - }); - }); - }); - }); - }); - - describe('multi-hop swap', () => { - describe('swap should be executed correctly', () => { - describe('path with swaps only', () => { - describe('wethIsEth: false', () => { - test('GivenIn', async () => { - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenIn, - }), - wethIsEth: false, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenOut, - }), - wethIsEth: false, - usePermit2Signatures, - }); - }); - }); - describe('wethIsEth: true', () => { - test('GivenIn', async () => { - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenIn, - }), - wethIsEth: true, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap: new Swap({ - chainId, - paths: [pathMultiSwap], - swapKind: SwapKind.GivenOut, - }), - wethIsEth: true, - usePermit2Signatures, - }); - }); - }); - }); - describe('paths with exit/join', () => { - describe('wethIsEth: false', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - usePermit2Signatures, - }); - }); - }); - describe('wethIsEth: true', () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - usePermit2Signatures, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathMultiSwap, pathWithExit], - swapKind: SwapKind.GivenOut, - }); - await assertSwapExactOut({ - contractToCall: - AddressProvider.BatchRouter(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: true, - usePermit2Signatures, - }); - }); - }); - }); - }); - }); - }); -}); diff --git a/test/validateAllNetworks.test.ts b/test/validateAllNetworks.test.ts index d00a42e73..05249d044 100644 --- a/test/validateAllNetworks.test.ts +++ b/test/validateAllNetworks.test.ts @@ -26,12 +26,13 @@ import { setTokenBalances, } from 'test/lib/utils/helper'; import { POOLS, TOKENS, TestToken, TestPool } from 'test/lib/utils/addresses'; -import { assertSwapExactIn } from 'test/lib/utils/swapHelpers'; import { ANVIL_NETWORKS, startFork, NetworkSetup, } from 'test/anvil/anvil-global-setup'; +import { runSwapTest } from 'test/lib/utils/swapTestRunner'; +import { TEST_CONSTANTS } from 'test/entities/swaps/v3/swapTestConfig'; const protocolVersion = 3; @@ -208,19 +209,27 @@ describe('validateAllNetworks', () => { protocolVersion, ); - const swap = new Swap({ - chainId, - paths: [swapPath], - swapKind: SwapKind.GivenIn, - }); - await assertSwapExactIn({ - contractToCall: AddressProvider.Router(chainId), - client, - rpcUrl, - chainId, - swap, - wethIsEth: false, - }); + // Use runSwapTest without saving results + // Pass empty objects so data isn't persisted + await runSwapTest( + { + chainId, + path: swapPath, + swapKind: SwapKind.GivenIn, + wethIsEth: false, + fork: { rpcUrl }, + routerAddress: AddressProvider.Router(chainId), + client, + testAddress, + slippage: TEST_CONSTANTS.slippage, + deadline: TEST_CONSTANTS.deadline, + testName: `validateAllNetworks-${chainId}`, + context: 'network validation', + outputTest: TEST_CONSTANTS.defaultOutputTest, + }, + {}, // Empty savedSwapTestData - always run fresh + {}, // Empty swapTestData - don't save results + ); }); }); }); From 6e1c870b71c172417666f66ea4f6beae8d071828 Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Wed, 17 Dec 2025 14:47:48 +0000 Subject: [PATCH 11/13] Low hanging V2 swap test refactor. --- .../swaps/v2/swapV2.integration.test.ts | 26 +++---- test/lib/utils/swapHelpers.ts | 71 ++++--------------- 2 files changed, 27 insertions(+), 70 deletions(-) diff --git a/test/entities/swaps/v2/swapV2.integration.test.ts b/test/entities/swaps/v2/swapV2.integration.test.ts index ab2dd53d7..0b4ca7fd3 100644 --- a/test/entities/swaps/v2/swapV2.integration.test.ts +++ b/test/entities/swaps/v2/swapV2.integration.test.ts @@ -23,8 +23,8 @@ import { import { ANVIL_NETWORKS, startFork } from 'test/anvil/anvil-global-setup'; import { - assertSwapExactIn, - assertSwapExactOut, + assertV2SwapExactIn, + assertV2SwapExactOut, forkSetup, TOKENS, } from 'test/lib/utils'; @@ -94,8 +94,8 @@ describe('SwapV2', () => { snapshot = await client.snapshot(); }); - describe('swap should be executed correcly', () => { - describe('wethIsEth: false', () => { + describe.sequential('swap should be executed correcly', () => { + describe.sequential('wethIsEth: false', () => { const wethIsEth = false; const swapParams = { chainId, @@ -106,7 +106,7 @@ describe('SwapV2', () => { ...swapParams, swapKind: SwapKind.GivenIn, }); - await assertSwapExactIn({ + await assertV2SwapExactIn({ contractToCall: vault, client, rpcUrl, @@ -120,7 +120,7 @@ describe('SwapV2', () => { ...swapParams, swapKind: SwapKind.GivenOut, }); - await assertSwapExactOut({ + await assertV2SwapExactOut({ contractToCall: vault, client, rpcUrl, @@ -130,16 +130,16 @@ describe('SwapV2', () => { }); }); }); - describe('wethIsEth: true', () => { + describe.sequential('wethIsEth: true', () => { const wethIsEth = true; - describe('eth out', async () => { + describe.sequential('eth out', async () => { test('GivenIn', async () => { const swap = new Swap({ chainId, paths: [pathBalWeth], swapKind: SwapKind.GivenIn, }); - await assertSwapExactIn({ + await assertV2SwapExactIn({ contractToCall: vault, client, rpcUrl, @@ -154,7 +154,7 @@ describe('SwapV2', () => { paths: [pathBalWeth], swapKind: SwapKind.GivenOut, }); - await assertSwapExactOut({ + await assertV2SwapExactOut({ contractToCall: vault, client, rpcUrl, @@ -164,7 +164,7 @@ describe('SwapV2', () => { }); }); }); - describe('eth in', () => { + describe.sequential('eth in', () => { test('GivenIn', async () => { const pathWethBal = { ...pathBalWeth, @@ -175,7 +175,7 @@ describe('SwapV2', () => { paths: [pathWethBal], swapKind: SwapKind.GivenIn, }); - await assertSwapExactIn({ + await assertV2SwapExactIn({ contractToCall: vault, client, rpcUrl, @@ -194,7 +194,7 @@ describe('SwapV2', () => { paths: [pathWethBal], swapKind: SwapKind.GivenOut, }); - await assertSwapExactOut({ + await assertV2SwapExactOut({ contractToCall: vault, client, rpcUrl, diff --git a/test/lib/utils/swapHelpers.ts b/test/lib/utils/swapHelpers.ts index e53922bf5..f1101b14c 100644 --- a/test/lib/utils/swapHelpers.ts +++ b/test/lib/utils/swapHelpers.ts @@ -31,18 +31,13 @@ export function areBigIntsWithinPercent( return difference <= tolerance; } -export async function assertSwapExactIn({ +export async function assertV2SwapExactIn({ contractToCall, client, rpcUrl, chainId, swap, wethIsEth, - usePermit2Signatures = false, - outputTest = { - testExactOutAmount: true, - percentage: 0, - }, }: { contractToCall: Address; client: PublicWalletClient & TestActions; @@ -64,36 +59,16 @@ export async function assertSwapExactIn({ if (expected.swapKind !== SwapKind.GivenIn) throw Error('Expected GivenIn'); expect(expected.expectedAmountOut.amount > 0n).to.be.true; - let buildCallInput: SwapBuildCallInput = { + const buildCallInput: SwapBuildCallInput = { slippage, deadline, queryOutput: expected, wethIsEth, + sender: testAddress, + recipient: testAddress, }; - if (swap.protocolVersion === 2) { - buildCallInput = { - ...buildCallInput, - sender: testAddress, - recipient: testAddress, - }; - } - - let call: SwapBuildOutputExactIn; - if (usePermit2Signatures) { - const permit2 = await Permit2Helper.signSwapApproval({ - ...buildCallInput, - client, - owner: testAddress, - }); - - call = swap.buildCallWithPermit2( - buildCallInput, - permit2, - ) as SwapBuildOutputExactIn; - } else { - call = swap.buildCall(buildCallInput) as SwapBuildOutputExactIn; - } + const call = swap.buildCall(buildCallInput) as SwapBuildOutputExactIn; await assertResultExactIn({ wethIsEth, @@ -103,7 +78,10 @@ export async function assertSwapExactIn({ client, testAddress, call, - outputTest, + outputTest: { + testExactOutAmount: true, + percentage: 0, + }, exactInQueryOutput: expected, }); } @@ -198,14 +176,13 @@ export async function assertResultExactIn({ } } -export async function assertSwapExactOut({ +export async function assertV2SwapExactOut({ contractToCall, client, rpcUrl, chainId, swap, wethIsEth, - usePermit2Signatures = false, }: { contractToCall: Address; client: PublicWalletClient & TestActions; @@ -213,7 +190,6 @@ export async function assertSwapExactOut({ chainId: ChainId; swap: Swap; wethIsEth: boolean; - usePermit2Signatures?: boolean; }) { const testAddress = (await client.getAddresses())[0]; const slippage = Slippage.fromPercentage('0.1'); @@ -223,37 +199,18 @@ export async function assertSwapExactOut({ if (expected.swapKind !== SwapKind.GivenOut) throw Error('Expected GivenOut'); - let buildCallInput: SwapBuildCallInput = { + const buildCallInput: SwapBuildCallInput = { slippage, deadline, queryOutput: expected, wethIsEth, + sender: testAddress, + recipient: testAddress, }; - if (swap.protocolVersion === 2) { - buildCallInput = { - ...buildCallInput, - sender: testAddress, - recipient: testAddress, - }; - } expect(expected.expectedAmountIn.amount > 0n).to.be.true; - let call: SwapBuildOutputExactOut; - if (usePermit2Signatures) { - const permit2 = await Permit2Helper.signSwapApproval({ - ...buildCallInput, - client, - owner: testAddress, - }); - - call = swap.buildCallWithPermit2( - buildCallInput, - permit2, - ) as SwapBuildOutputExactOut; - } else { - call = swap.buildCall(buildCallInput) as SwapBuildOutputExactOut; - } + const call = swap.buildCall(buildCallInput) as SwapBuildOutputExactOut; await assertResultExactOut({ wethIsEth, From 883a01be6835ae20515c90603d50d4869de7f58a Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Thu, 18 Dec 2025 11:44:03 +0000 Subject: [PATCH 12/13] Replace legacy V2 swap tests with new test setup. --- .../swaps/v2/swap.integration.test.ts | 259 + test/entities/swaps/v2/swapTestConfig.ts | 148 + test/entities/swaps/v2/swapTestData.json | 390 ++ .../swaps/v2/swapV2.integration.test.ts | 209 - .../swaps/v3/swap.integration.test.ts | 69 +- test/entities/swaps/v3/swapTestData.json | 5106 ++++++++--------- test/lib/utils/index.ts | 3 + test/lib/utils/swapAssertHelpers.ts | 13 +- test/lib/utils/swapBuildHelpers.ts | 28 +- test/lib/utils/swapHelpers.ts | 106 - test/lib/utils/swapQueryHelpers.ts | 6 +- test/lib/utils/swapTestDataAccess.ts | 1 - test/lib/utils/swapTestFixture.ts | 157 +- test/lib/utils/swapTestRunner.ts | 21 +- test/validateAllNetworks.test.ts | 2 +- 15 files changed, 3557 insertions(+), 2961 deletions(-) create mode 100644 test/entities/swaps/v2/swap.integration.test.ts create mode 100644 test/entities/swaps/v2/swapTestConfig.ts create mode 100644 test/entities/swaps/v2/swapTestData.json delete mode 100644 test/entities/swaps/v2/swapV2.integration.test.ts diff --git a/test/entities/swaps/v2/swap.integration.test.ts b/test/entities/swaps/v2/swap.integration.test.ts new file mode 100644 index 000000000..0750ba725 --- /dev/null +++ b/test/entities/swaps/v2/swap.integration.test.ts @@ -0,0 +1,259 @@ +// pnpm test test/entities/swaps/v2/swap.integration.test.ts +import { config } from 'dotenv'; +config(); +import { TestActions, Hex } from 'viem'; +import { SwapKind, PublicWalletClient, VAULT_V2 } from '@/index'; + +import { stopAnvilFork } from 'test/anvil/anvil-global-setup'; +import { + setupForkAndClientV2, + setupV2Approval, +} from 'test/lib/utils/swapTestFixture'; +import { + TEST_CONSTANTS_V2, + testsV2, + allTestsHaveSavedDataV2, +} from './swapTestConfig'; +import { loadSwapTestData, saveSwapTestData } from 'test/lib/utils'; +import { runSwapTest } from 'test/lib/utils/swapTestRunner'; +import { join, dirname, basename } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +// Get the directory of the current test file +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const swapTestDataPath = join( + __dirname, + TEST_CONSTANTS_V2.SWAP_TEST_DATA_FILENAME, +); +const jobId = + basename(__filename) + .split('') + .reduce((sum, char) => sum + char.charCodeAt(0), 0) % 10000; + +// Load existing test data (if file exists) +const savedSwapTestData = loadSwapTestData(swapTestDataPath); + +// Data collection for swap test call data (nested structure) +const swapTestData: Record = {}; + +for (const test of testsV2) { + describe.sequential(test.name, () => { + let snapshot: Hex | undefined; + let fork: { rpcUrl: string } | undefined; + let client: (PublicWalletClient & TestActions) | undefined; + const testAddress = TEST_CONSTANTS_V2.ANVIL_TEST_ADDRESS; + const contractToCall = VAULT_V2[test.chainId]; + + beforeAll(async () => { + // Only run fork/client setup if at least one test doesn't have saved data + if (!allTestsHaveSavedDataV2(test, savedSwapTestData)) { + const setup = await setupForkAndClientV2( + test, + jobId, + testAddress, + ); + fork = setup.fork; + client = setup.client; + } + }); + + if (test.isNative === 'input') { + describe.sequential('native input', () => { + it('should handle GivenIn swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + + it('should handle GivenOut swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'native input', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + }); + } + + describe.sequential('token swap', () => { + beforeAll(async () => { + // Only run if fork/client were initialized + if (client && fork) { + snapshot = await setupV2Approval( + client, + testAddress, + test.path, + contractToCall, + TEST_CONSTANTS_V2.BALANCE_MULTIPLIER, + ); + } + }); + + beforeEach(async () => { + // Only run if fork/client were initialized + if (client && fork && snapshot) { + await client.revert({ + id: snapshot, + }); + snapshot = await client.snapshot(); + } + }); + + if (test.isNative === 'output') { + describe.sequential('native output', () => { + it('should handle GivenIn swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: true, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'native output', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + + it('should handle GivenOut swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: true, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'native output', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + }); + } + + describe.sequential('token swap', () => { + it('should handle GivenIn swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenIn, + wethIsEth: false, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'token swap', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + + it('should handle GivenOut swap', async () => { + await runSwapTest( + { + chainId: test.chainId, + path: test.path, + swapKind: SwapKind.GivenOut, + wethIsEth: false, + fork, + contractToCall, + client, + testAddress, + slippage: TEST_CONSTANTS_V2.slippage, + deadline: TEST_CONSTANTS_V2.deadline, + testName: test.name, + context: 'token swap', + subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS_V2.defaultOutputTest, + }, + savedSwapTestData, + swapTestData, + ); + }); + }); + }); + + afterAll(async () => { + // Only stop fork if it was started + if (fork) { + console.log('stopFork', test.name); + await stopAnvilFork(test.anvilNetwork, jobId); + } + }); + }); +} + +// Write swap test data to JSON file after all tests complete +afterAll(async () => { + await saveSwapTestData(swapTestDataPath, savedSwapTestData, swapTestData); +}); diff --git a/test/entities/swaps/v2/swapTestConfig.ts b/test/entities/swaps/v2/swapTestConfig.ts new file mode 100644 index 000000000..544aff48f --- /dev/null +++ b/test/entities/swaps/v2/swapTestConfig.ts @@ -0,0 +1,148 @@ +import { ChainId, Path, Slippage } from '@/index'; +import { ANVIL_NETWORKS, NetworkSetup } from 'test/anvil/anvil-global-setup'; +import { TOKENS } from 'test/lib/utils/addresses'; +import { hasSavedTestData } from 'test/lib/utils/swapTestDataHelpers'; + +// Test configuration constants for V2 +export const TEST_CONSTANTS_V2 = { + ANVIL_TEST_ADDRESS: '0x831eFb058FEdCd16Cd6b9174206DFe452dDCe8C3', // address from mnemonic "you twelve word test phrase boat cat like this example dog car" + BALANCE_MULTIPLIER: 10n, // For setting token balances + slippage: Slippage.fromPercentage('0.1'), + deadline: 999999999999999999n, + SWAP_TEST_DATA_FILENAME: 'swapTestData.json', + defaultOutputTest: { + testExactOutAmount: true, + percentage: 0, + }, +} as const; + +export type NativePosition = 'input' | 'output' | 'none'; + +export type TestV2 = { + name: string; + chainId: ChainId; + anvilNetwork: NetworkSetup; + path: Path; + isNative: NativePosition; + blockNumber?: bigint; + outputTest?: { + testExactOutAmount: boolean; + percentage: number; + }; +}; + +export const testsV2: TestV2[] = [ + { + name: 'Single Swap: BAL[swap]WETH', + chainId: ChainId.MAINNET, + anvilNetwork: ANVIL_NETWORKS.MAINNET, + path: { + protocolVersion: 2, + tokens: [ + { + address: TOKENS[ChainId.MAINNET].BAL.address, + decimals: TOKENS[ChainId.MAINNET].BAL.decimals, + }, + { + address: TOKENS[ChainId.MAINNET].WETH.address, + decimals: TOKENS[ChainId.MAINNET].WETH.decimals, + }, + ], + pools: [ + '0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014', + ], + inputAmountRaw: 100000000000n, + outputAmountRaw: 100000n, + }, + isNative: 'output', + }, + { + name: 'Single Swap: WETH[swap]BAL', + chainId: ChainId.MAINNET, + anvilNetwork: ANVIL_NETWORKS.MAINNET, + path: { + protocolVersion: 2, + tokens: [ + { + address: TOKENS[ChainId.MAINNET].WETH.address, + decimals: TOKENS[ChainId.MAINNET].WETH.decimals, + }, + { + address: TOKENS[ChainId.MAINNET].BAL.address, + decimals: TOKENS[ChainId.MAINNET].BAL.decimals, + }, + ], + pools: [ + '0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014', + ], + inputAmountRaw: 10000000000n, + outputAmountRaw: 1000000000000n, + }, + isNative: 'input', + }, +]; + +/** + * Checks if all tests for a given V2 test configuration have valid saved data. + * Valid saved data must be an object with both 'queryOutput' and 'call' properties. + * Checks the nested structure: testName > context > swapKind + * Always checks "token swap" context, plus conditionally checks native contexts based on isNative value. + * @param test - The V2 test configuration + * @param savedData - Nested record of saved test data + * @returns True if all tests have valid saved data, false otherwise + */ +export function allTestsHaveSavedDataV2( + test: Pick, + savedData: Record, +): boolean { + const testData = savedData[test.name]; + if (!testData || typeof testData !== 'object') { + return false; + } + + const testDataObj = testData as Record; + + // Always check "token swap" context + const tokenSwapData = testDataObj['token swap']; + if ( + !tokenSwapData || + typeof tokenSwapData !== 'object' || + !hasSavedTestData((tokenSwapData as Record).GivenIn) || + !hasSavedTestData((tokenSwapData as Record).GivenOut) + ) { + return false; + } + + // Additionally check native contexts based on isNative value + if (test.isNative === 'input') { + const nativeInputData = testDataObj['native input']; + if ( + !nativeInputData || + typeof nativeInputData !== 'object' || + !hasSavedTestData( + (nativeInputData as Record).GivenIn, + ) || + !hasSavedTestData( + (nativeInputData as Record).GivenOut, + ) + ) { + return false; + } + } else if (test.isNative === 'output') { + const nativeOutputData = testDataObj['native output']; + if ( + !nativeOutputData || + typeof nativeOutputData !== 'object' || + !hasSavedTestData( + (nativeOutputData as Record).GivenIn, + ) || + !hasSavedTestData( + (nativeOutputData as Record).GivenOut, + ) + ) { + return false; + } + } + + return true; +} diff --git a/test/entities/swaps/v2/swapTestData.json b/test/entities/swaps/v2/swapTestData.json new file mode 100644 index 000000000..a250dc219 --- /dev/null +++ b/test/entities/swaps/v2/swapTestData.json @@ -0,0 +1,390 @@ +{ + "Single Swap: BAL[swap]WETH": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "100000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "44772212", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "44772212" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002aa7c8f0000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "44727439", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "44727439" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "100000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "187960564531", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "187960564531" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bce86a8270000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "188148525095", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "188148525095" + } + } + } + }, + "token swap": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "100000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "44772212", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "44772212" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002aa7c8f0000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "44727439", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "44727439" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountOut": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "100000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "187960564531", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "187960564531" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bce86a8270000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "188148525095", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "188148525095" + } + } + } + } + }, + "Single Swap: WETH[swap]BAL": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "10000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "11540010705792", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "11540010705792" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7c2e668cae0000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f5600020000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "11528470695086", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "11528470695086" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "1000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "1000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "892585871", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "892585871" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354166380000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f5600020000000000000000001400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "893478456", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "893478456", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "893478456" + } + } + } + }, + "token swap": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "10000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "11540010705785", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "11540010705785" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7c2e668ca70000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d00000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "11528470695079", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "11528470695079" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "amountOut": { + "token": { + "chainId": 1, + "address": "0xba100000625a3754423978a60c9317c58a424e3d", + "decimals": 18, + "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + }, + "amount": "1000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "1000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "892585871", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "892585871" + } + }, + "call": { + "to": "0xBA12222222228d8Ba445958a75a0704d566BF2C8", + "callData": "0x52bbbe2900000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000831efb058fedcd16cd6b9174206dfe452ddce8c3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354166380000000000000000000000000000000000000000000000000de0b6b3a763ffff5c6ee304399dbdb9c8ef030ab642b10820db8f560002000000000000000000140000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ba100000625a3754423978a60c9317c58a424e3d000000000000000000000000000000000000000000000000000000e8d4a5100000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "decimals": 18, + "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "amount": "893478456", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "893478456" + } + } + } + } + } +} diff --git a/test/entities/swaps/v2/swapV2.integration.test.ts b/test/entities/swaps/v2/swapV2.integration.test.ts deleted file mode 100644 index 0b4ca7fd3..000000000 --- a/test/entities/swaps/v2/swapV2.integration.test.ts +++ /dev/null @@ -1,209 +0,0 @@ -// pnpm test -- swapV2.integration.test.ts -import { config } from 'dotenv'; -config(); -import { - Address, - createTestClient, - http, - parseEther, - publicActions, - walletActions, - TestActions, - Hex, -} from 'viem'; -import { - CHAINS, - ChainId, - SwapKind, - Swap, - VAULT_V2, - Path, - PublicWalletClient, -} from '@/index'; - -import { ANVIL_NETWORKS, startFork } from 'test/anvil/anvil-global-setup'; -import { - assertV2SwapExactIn, - assertV2SwapExactOut, - forkSetup, - TOKENS, -} from 'test/lib/utils'; - -const protocolVersion = 2; -const chainId = ChainId.MAINNET; - -const BAL = TOKENS[chainId].BAL; -const WETH = TOKENS[chainId].WETH; -const vault = VAULT_V2[chainId]; - -describe('SwapV2', () => { - let rpcUrl: string; - let client: PublicWalletClient & TestActions; - let testAddress: Address; - let snapshot: Hex; - - const pathBalWeth: Path = { - protocolVersion: 2, - tokens: [ - { - address: TOKENS[chainId].BAL.address, - decimals: TOKENS[chainId].BAL.decimals, - }, - { - address: TOKENS[chainId].WETH.address, - decimals: TOKENS[chainId].WETH.decimals, - }, - ], - pools: [ - '0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014', - ], - inputAmountRaw: 100000000000n, - outputAmountRaw: 100000000000n, - }; - - beforeAll(async () => { - ({ rpcUrl } = await startFork(ANVIL_NETWORKS.MAINNET)); - - client = createTestClient({ - mode: 'anvil', - chain: CHAINS[chainId], - transport: http(rpcUrl), - }) - .extend(publicActions) - .extend(walletActions); - - testAddress = (await client.getAddresses())[0]; - - await forkSetup( - client, - testAddress, - [WETH.address, BAL.address], - [WETH.slot as number, BAL.slot as number], - [parseEther('100'), parseEther('100')], - undefined, - protocolVersion, - ); - - snapshot = await client.snapshot(); - }); - - beforeEach(async () => { - await client.revert({ - id: snapshot, - }); - snapshot = await client.snapshot(); - }); - - describe.sequential('swap should be executed correcly', () => { - describe.sequential('wethIsEth: false', () => { - const wethIsEth = false; - const swapParams = { - chainId, - paths: [pathBalWeth], - }; - test('GivenIn', async () => { - const swap = new Swap({ - ...swapParams, - swapKind: SwapKind.GivenIn, - }); - await assertV2SwapExactIn({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - ...swapParams, - swapKind: SwapKind.GivenOut, - }); - await assertV2SwapExactOut({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - }); - describe.sequential('wethIsEth: true', () => { - const wethIsEth = true; - describe.sequential('eth out', async () => { - test('GivenIn', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenIn, - }); - await assertV2SwapExactIn({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - test('GivenOut', async () => { - const swap = new Swap({ - chainId, - paths: [pathBalWeth], - swapKind: SwapKind.GivenOut, - }); - await assertV2SwapExactOut({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - }); - describe.sequential('eth in', () => { - test('GivenIn', async () => { - const pathWethBal = { - ...pathBalWeth, - tokens: [...pathBalWeth.tokens].reverse(), - }; - const swap = new Swap({ - chainId, - paths: [pathWethBal], - swapKind: SwapKind.GivenIn, - }); - await assertV2SwapExactIn({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - test('GivenOut', async () => { - const pathWethBal = { - ...pathBalWeth, - tokens: [...pathBalWeth.tokens].reverse(), - }; - const swap = new Swap({ - chainId, - paths: [pathWethBal], - swapKind: SwapKind.GivenOut, - }); - await assertV2SwapExactOut({ - contractToCall: vault, - client, - rpcUrl, - chainId, - swap, - wethIsEth, - }); - }); - }); - }); - }); -}); diff --git a/test/entities/swaps/v3/swap.integration.test.ts b/test/entities/swaps/v3/swap.integration.test.ts index 854a2a78b..e381e9d15 100644 --- a/test/entities/swaps/v3/swap.integration.test.ts +++ b/test/entities/swaps/v3/swap.integration.test.ts @@ -11,7 +11,7 @@ import { import { stopAnvilFork } from 'test/anvil/anvil-global-setup'; import { - setupForkAndClient, + setupForkAndClientV3, setupPermit2Approval, setupPermit2Signature, } from 'test/lib/utils/swapTestFixture'; @@ -24,7 +24,6 @@ import { import { runSwapTest, runSwapTestWithSignature, - type TestSwapConfig, } from 'test/lib/utils/swapTestRunner'; import { join, dirname, basename } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -53,7 +52,7 @@ for (const test of tests) { let fork: { rpcUrl: string } | undefined; let client: (PublicWalletClient & TestActions) | undefined; const testAddress = TEST_CONSTANTS.ANVIL_TEST_ADDRESS; - const routerAddress = + const contractToCall = test.path.pools.length > 1 ? AddressProvider.BatchRouter(test.chainId) : AddressProvider.Router(test.chainId); @@ -61,7 +60,11 @@ for (const test of tests) { beforeAll(async () => { // Only run fork/client setup if at least one test doesn't have saved data if (!allTestsHaveSavedData(test, savedSwapTestData)) { - const setup = await setupForkAndClient(test, jobId); + const setup = await setupForkAndClientV3( + test, + jobId, + testAddress, + ); fork = setup.fork; client = setup.client; snapshotPreApprove = setup.snapshotPreApprove; @@ -77,7 +80,7 @@ for (const test of tests) { swapKind: SwapKind.GivenIn, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -85,6 +88,9 @@ for (const test of tests) { testName: test.name, context: 'native input', subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -98,7 +104,7 @@ for (const test of tests) { swapKind: SwapKind.GivenOut, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -106,6 +112,9 @@ for (const test of tests) { testName: test.name, context: 'native input', subContext: undefined, + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -125,7 +134,8 @@ for (const test of tests) { client, testAddress, test.path, - routerAddress, + contractToCall, + TEST_CONSTANTS.BALANCE_MULTIPLIER, ); permit2 = permit2Sig; snapShotPermit2 = snapshot; @@ -152,7 +162,7 @@ for (const test of tests) { swapKind: SwapKind.GivenIn, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -160,6 +170,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 signature approval', subContext: 'native output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -174,7 +187,7 @@ for (const test of tests) { swapKind: SwapKind.GivenOut, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -182,6 +195,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 signature approval', subContext: 'native output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -200,7 +216,7 @@ for (const test of tests) { swapKind: SwapKind.GivenIn, wethIsEth: false, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -208,7 +224,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 signature approval', subContext: 'token output', - outputTest: test.outputTest, + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -224,7 +242,7 @@ for (const test of tests) { swapKind: SwapKind.GivenOut, wethIsEth: false, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -232,6 +250,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 signature approval', subContext: 'token output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -248,8 +269,9 @@ for (const test of tests) { client, testAddress, test.path, - routerAddress, + contractToCall, snapshotPreApprove, + TEST_CONSTANTS.BALANCE_MULTIPLIER, ); } }); @@ -264,7 +286,7 @@ for (const test of tests) { swapKind: SwapKind.GivenIn, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -272,6 +294,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 direct approval', subContext: 'native output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -285,7 +310,7 @@ for (const test of tests) { swapKind: SwapKind.GivenOut, wethIsEth: true, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -293,6 +318,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 direct approval', subContext: 'native output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -310,7 +338,7 @@ for (const test of tests) { swapKind: SwapKind.GivenIn, wethIsEth: false, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -318,7 +346,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 direct approval', subContext: 'token output', - outputTest: test.outputTest, + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, @@ -333,7 +363,7 @@ for (const test of tests) { swapKind: SwapKind.GivenOut, wethIsEth: false, fork, - routerAddress, + contractToCall, client, testAddress, slippage: TEST_CONSTANTS.slippage, @@ -341,6 +371,9 @@ for (const test of tests) { testName: test.name, context: 'permit2 direct approval', subContext: 'token output', + outputTest: + test.outputTest || + TEST_CONSTANTS.defaultOutputTest, }, savedSwapTestData, swapTestData, diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index a44a06519..4ffe258ae 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -1,2648 +1,2584 @@ { - "Single Swap: WETH[swap]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "36232502910235848", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } - }, - "permit2 signature approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27346989", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27346989000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a0dd5a0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27319642", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27319642000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x4200000000000000000000000000000000000006", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "Single Swap: WETH[swap]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36782051712834578", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36782051712834578" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000082ce88c3947b540000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36818833764547412", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36818833764547412" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x4200000000000000000000000000000000000006", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "36232502910235848", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" - } - } - } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27910757", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27910757000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "27882846", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "27882846000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36196306603632216", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36196306603632216" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "36232502910235848", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "36232502910235848" - } - } - } - } - } - }, - "Single Swap: USDC[swap]WETH": { - "permit2 signature approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 - } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "286143408", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "286143408000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "286429551", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "286429551000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27346989", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27346989000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a0dd5a0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27319642", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27319642000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36782051712834578", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36782051712834578" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000082ce88c3947b540000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36818833764547412", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36818833764547412" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x414a1447b1d4e66a9eddd883415657072bf51acf2639f75104484a2afcc0753355545dc6223c3d8464ed037b79962560303869f91baa5b768ac540036df17f7a1b" + } } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 - } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "286143408", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "286143408000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "286429551", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "286429551000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27910757", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27910757000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000001a9755e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "27882846", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "27882846000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36196306603632216", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36196306603632216" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb70000000000000000000000004200000000000000000000000000000000000006000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000080b944f949b4c80000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "36232502910235848", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "36232502910235848" + } + } } - ], - "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" - } - } - } - }, - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "331115889255098973", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "331115889255098973" } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "330784773365843874", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "330784773365843874" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334014320", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334014320000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "334348334", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "334348334000000000000" - } - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "1000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "1000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272624076217920941", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272624076217920941" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "272351452141703020", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "272351452141703020" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "100000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "403791060", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "403791060000000000000" - } - }, - "call": { - "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", - "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" - }, - "amount": "404194851", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "404194851000000000000" - } - } } - } - } - }, - "Multihop Swap: WETH[swap]USDC[swap]EURC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "10000000000000000", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "42162899169447476", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } }, - "permit2 signature approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "23469866" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23469866", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23469866000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000165c37c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23446396", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23446396000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x4200000000000000000000000000000000000006", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "Single Swap: USDC[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286143408", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286143408000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286429551", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286429551000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42915394418564706" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42915394418564706", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42915394418564706" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000989e5aec8dd5e60000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42958309812983270", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42958309812983270" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x4200000000000000000000000000000000000006", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000124750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286143408", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286143408000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000003f170631ed9821ca51a59d996ab095162438dc10ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004176500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000012494e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000001112916f0000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "286429551", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "286429551000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x76500c2eb58c5129827e8304dbfb6eb4c3164031744b8e51faf197e4db5d653c0ca140b5faa6031f0d4e2887613fa21e04290682e2e21cb6a16eee635604f23a1c" + } } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" - } - } - } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24016376" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24016376", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24016376000000000000" } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "23992359", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "23992359000000000000" - } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "42120778391056420" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42120778391056420", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42120778391056420" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "42162899169447476", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "42162899169447476" - } - } - } - } - } - }, - "Multihop Swap: EURC[swap]USDC[swap]WETH": { - "permit2 signature approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "41102074809553470" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "331115889255098973", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "331115889255098973" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000004972effb19447a20000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "330784773365843874", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "330784773365843874" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334014320", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334014320000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000013edc02e0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "334348334", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "334348334000000000000" + } + } } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, - "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24160779" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24160779", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24160779000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24184939", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24184939000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "1000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "1000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272624076217920941", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272624076217920941" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x750283bc0000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000003c79633e6f7cf6c0000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "272351452141703020", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "272351452141703020" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "100000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "403791060", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "403791060000000000000" + } + }, + "call": { + "to": "0x3f170631ed9821Ca51A59D996aB095162438DC10", + "callData": "0x94e86ef80000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000016345785d8a000000000000000000000000000000000000000000000000000000000000181786230000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", + "decimals": 6, + "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + }, + "amount": "404194851", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "404194851000000000000" + } + } } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "41102074809553470" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 - } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24160779" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24160779", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24160779000000000000" } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24184939", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24184939000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 - } - ], - "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" - } } - } }, - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "41102074809553470" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" + "Multihop Swap: WETH[swap]USDC[swap]EURC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "10000000000000000", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41102074809553470", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41102074809553470" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "41060972734743916", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "41060972734743916" + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "42162899169447476", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "24609406" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24609406", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24609406000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "24634015", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "24634015000000000000" - } - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "40176740744878721" - ], - "amountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "100000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40176740744878721", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40176740744878721" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "40136564004133842", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "40136564004133842" + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["23469866"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23469866", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23469866000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000165c37c00000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23446396", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23446396000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42915394418564706"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42915394418564706", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42915394418564706" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000004200000000000000000000000000000000000006000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000989e5aec8dd5e60000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42958309812983270", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42958309812983270" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x4200000000000000000000000000000000000006", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0xee548e8e79765064a5c037f5e169d7f07ae3705e04d17a96d8aee80dd7b92c123b89944caaa35919f38aa89f3d82a6256c50dfbb8b046220becba4fba3c95c521b" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "pathAmounts": [ - "25174229" - ], - "amountOut": { - "token": { - "chainId": 8453, - "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" - }, - "amount": "10000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "10000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25174229", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25174229000000000000" - } - }, - "call": { - "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 8453, - "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" - }, - "amount": "25199403", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "25199403000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24016376"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24016376", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24016376000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000016e182700000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "23992359", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "23992359000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["42120778391056420"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42120778391056420", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42120778391056420" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000095caeef3b20e340000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda029130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f00000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "42162899169447476", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "42162899169447476" + } + } + } } - } - } - } - } - }, - "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { - "native input": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "576500" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "100000000000000", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" - } } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "104118574098812" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "104222692672910", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" - } - } - } }, - "permit2 signature approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "576061" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576061", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576061000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c7fc0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575484", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575484000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "Multihop Swap: EURC[swap]USDC[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["41102074809553470"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24160779"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24160779", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24160779000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24184939", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24184939000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, - "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "104159047509227" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104159047509227", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104159047509227" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005ed3ab63d44000000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104263206556736", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104263206556736" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["41102074809553470"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24160779"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24160779", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24160779000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000085a80afee867adf27b50bdb7b76da70f1e853062ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb42000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000171086b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb700000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24184939", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24184939000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2b6b97ddd1b692dc5f87ddd84ddb9dbb95b7f229a59b1fd8d5a8d5e9ae714f1101aa58823f521be098b554885bcf0a96e4faec6426454e5f87a967cb5e8283ef1b" + } } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" - } - } - } - }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "576500" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "576500", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "576500000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "575923", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "575923000000000000" } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "104118574098812" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["41102074809553470"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41102074809553470", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41102074809553470" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000091e0bcb5fc856c0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "41060972734743916", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "41060972734743916" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["24609406"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24609406", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24609406000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000177e29f000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "24634015", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "24634015000000000000" + } + } + } }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104118574098812", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104118574098812" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "104222692672910", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "104222692672910" + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["40176740744878721"], + "amountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "100000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40176740744878721", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40176740744878721" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb4200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000008e97fe07f89bd20000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "40136564004133842", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "40136564004133842" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "pathAmounts": ["25174229"], + "amountOut": { + "token": { + "chainId": 8453, + "address": "0x4200000000000000000000000000000000000006", + "decimals": 18, + "wrapped": "0x4200000000000000000000000000000000000006" + }, + "amount": "10000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "10000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25174229", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25174229000000000000" + } + }, + "call": { + "to": "0x85a80afee867aDf27B50BdB7b76DA70f1E853062", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060a3e35cc302bfa44cb288bc5a4f316fdb1adb420000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000180832b000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000608382d1627c1f2f939c87d14fdb62d5bcbf561f000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b4c560f33a71a9f7a500af3c4c65b46fbbafdb7000000000000000000000000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 8453, + "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", + "decimals": 6, + "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + }, + "amount": "25199403", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "25199403000000000000" + } + } + } } - } } - } - } - }, - "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { - "permit2 signature approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100949709114218" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100949709114218", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100949709114218" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100848759405103", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100848759405103" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + }, + "Multihop Swap With Exit: WETH[swap]BPT[Exit]USDC": { + "native input": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["576500"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "100000000000000", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, - "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "594370" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594370", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594370000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594964", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594964000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["104118574098812"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "104222692672910", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" - } - } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100949709114218" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100949709114218", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100949709114218" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100848759405103", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100848759405103" } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 - } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "594370" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594370", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594370000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594964", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594964000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["576061"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576061", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576061000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c7fc0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575484", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575484000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["104159047509227"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104159047509227", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104159047509227" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004107e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005ed3ab63d44000000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104263206556736", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104263206556736" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x07e43d48e64b987e9f0af38aec2912e155c0db6b7169320e34d73c18f9b8356b19d93f529a455b576d4f07f6ed9081a668ada1e2d9b28d89bfcc6455b7dca6d91b" + } } - ], - "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" - } - } - } - }, - "permit2 direct approval": { - "native output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100949709114218" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100949709114218", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100949709114218" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100848759405103", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100848759405103" } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "594597" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "594597", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "594597000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595191", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595191000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["576500"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "576500", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "576500000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000008c9b30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "575923", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "575923000000000000" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["104118574098812"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104118574098812", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104118574098812" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f9000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000005eca3c93058e00000000000000000000000000000000000000000000000000000000000927c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e00000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "104222692672910", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "104222692672910" + } + } + } } - } } - }, - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "100872970306657" - ], - "amountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "600000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "600000000000000000" + }, + "Multihop Swap With Join: USDC[join]BPT[swap]WETH": { + "permit2 signature approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100949709114218"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["594370"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594370", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594370000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594964", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594964000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + } }, - "expectedAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100872970306657", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100872970306657" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100772097336350", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100772097336350" + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100949709114218"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000244286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["594370"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594370", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594370000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c85b652685567c1b074e8c0d4389f83a2e458b1cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004114a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002448eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000009141400000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594964", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594964000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0x94a9D9AC8a22534E3FaCa9F4e7F2E2cf85d5E4C8", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x14a2208ce79dbcf0f73cb4224d2fb27b4ff9479e2856fe44bfcad019b90a803721f09cbe2bcda4f59f79ff8f7c34cbf1a7f9486fbb7d4457e19e85cb57a0f3f71c" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "pathAmounts": [ - "595049" - ], - "amountOut": { - "token": { - "chainId": 11155111, - "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" - }, - "amount": "100000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595049", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595049000000000000" - } - }, - "call": { - "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 11155111, - "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" - }, - "amount": "595644", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "595644000000000000" - } - } - } - } - } - }, - "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { - "permit2 signature approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "9999530198927941607705" - ], - "amountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "10000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "10000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9999530198927941607705", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9999530198927941607705" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a4286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9989530668729013666097", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9989530668729013666097" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "permit2 direct approval": { + "native output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100949709114218"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100949709114218", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100949709114218" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005bb8ae7afa2f000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100848759405103", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100848759405103" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["594597"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "594597", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "594597000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000914f700000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595191", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595191000000000000" + } + } } - ], - "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" }, - "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" - } - }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "100004670" - ], - "amountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "100000000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100004670", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100004670000000000000" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a48eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f779e20000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100104674", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100104674000000000000" - } - }, - "permit2": { - "batch": { - "details": [ - { - "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "amount": "1461501637330902918203684832716283019655932542975", - "expiration": 281474976710655, - "nonce": 0 + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["100872970306657"], + "amountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "600000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "600000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100872970306657", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100872970306657" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000927c000000000000000000000000000000000000000000000000000005ba6d510a41e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100772097336350", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100772097336350" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "pathAmounts": ["595049"], + "amountOut": { + "token": { + "chainId": 11155111, + "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", + "decimals": 18, + "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + }, + "amount": "100000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595049", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595049000000000000" + } + }, + "call": { + "to": "0xC85b652685567C1B074e8c0D4389f83a2E458b1C", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000094a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000916bc00000000000000000000000000000000000000000000000000005af3107a4000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c400000000000000000000000086fde41ff01b35846eb2f27868fb2938addd44c40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bfdbdb4d5b8e00bade87cf12ed58e6152f25ac3e0000000000000000000000007b79995e5f793a07bc00c21412e50ecae098e7f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 11155111, + "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", + "decimals": 6, + "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + }, + "amount": "595644", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "595644000000000000" + } + } } - ], - "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" - }, - "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" - } + } } - } }, - "permit2 direct approval": { - "token output": { - "GivenIn": { - "queryOutput": { - "swapKind": 0, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "9999530198927941607705" - ], - "amountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "10000000000", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "10000000000000000000000" - }, - "expectedAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9999530198927941607705", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9999530198927941607705" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "minAmountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "9989530668729013666097", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "9989530668729013666097" + "Swap With Buffers: USDC[wrap]waEthUSDC[swap]waEthLidoGHO[unwrap]GHO": { + "permit2 signature approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["9999530199327128141686"], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530199327128141686", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530199327128141686" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a4286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640c518cc85280000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530669127801013544", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530669127801013544" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["100004670"], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004670", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004670000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a48eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f779e20000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104674", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104674000000000000" + } + }, + "permit2": { + "batch": { + "details": [ + { + "token": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "amount": "1461501637330902918203684832716283019655932542975", + "expiration": 281474976710655, + "nonce": 0 + } + ], + "spender": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "sigDeadline": "115792089237316195423570985008687907853269984665640564039457584007913129639935" + }, + "signature": "0x2916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b" + } + } } - } }, - "GivenOut": { - "queryOutput": { - "swapKind": 1, - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": [ - "100004734" - ], - "amountOut": { - "token": { - "chainId": 1, - "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" - }, - "amount": "100000000000000000000", - "scalar": "1", - "decimalScale": "1000000000000000000", - "scale18": "100000000000000000000" - }, - "expectedAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100004734", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100004734000000000000" - } - }, - "call": { - "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "maxAmountIn": { - "token": { - "chainId": 1, - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - }, - "amount": "100104738", - "scalar": "1000000000000", - "decimalScale": "1000000", - "scale18": "100104738000000000000" + "permit2 direct approval": { + "token output": { + "GivenIn": { + "queryOutput": { + "swapKind": 0, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["9999530198927941607705"], + "amountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "10000000000", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "10000000000000000000000" + }, + "expectedAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9999530198927941607705", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9999530198927941607705" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "minAmountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "9989530668729013666097", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "9989530668729013666097" + } + } + }, + "GivenOut": { + "queryOutput": { + "swapKind": 1, + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "pathAmounts": ["100004734"], + "amountOut": { + "token": { + "chainId": 1, + "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", + "decimals": 18, + "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + }, + "amount": "100000000000000000000", + "scalar": "1", + "decimalScale": "1000000000000000000", + "scale18": "100000000000000000000" + }, + "expectedAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100004734", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100004734000000000000" + } + }, + "call": { + "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", + "callData": "0x8eb1b65e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000005f77a220000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "value": "0", + "maxAmountIn": { + "token": { + "chainId": 1, + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "decimals": 6, + "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "amount": "100104738", + "scalar": "1000000000000", + "decimalScale": "1000000", + "scale18": "100104738000000000000" + } + } + } } - } } - } } - } -} \ No newline at end of file +} diff --git a/test/lib/utils/index.ts b/test/lib/utils/index.ts index 1360031a6..372f4ac9d 100644 --- a/test/lib/utils/index.ts +++ b/test/lib/utils/index.ts @@ -12,5 +12,8 @@ export * from './removeLiquidityHelper'; export * from './removeLiquidityRecoveryHelper'; export * from './swapHelpers'; export * from './swapTestDataHelpers'; +export * from './swapTestRunner'; +export * from './swapAssertHelpers'; +export * from './swapTestFixture'; export * from './types'; export * from './addLiquidityBoostedHelper'; diff --git a/test/lib/utils/swapAssertHelpers.ts b/test/lib/utils/swapAssertHelpers.ts index 2ee03b4ac..990ddfcc1 100644 --- a/test/lib/utils/swapAssertHelpers.ts +++ b/test/lib/utils/swapAssertHelpers.ts @@ -11,12 +11,11 @@ import { } from '@/index'; import { expect } from 'vitest'; import { assertResultExactIn, assertResultExactOut } from './swapHelpers'; -import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; export async function assertSwapResultWithForkTest({ swap, chainId, - routerAddress, + contractToCall, client, testAddress, call, @@ -27,14 +26,14 @@ export async function assertSwapResultWithForkTest({ }: { swap: Swap; chainId: ChainId; - routerAddress: Address; + contractToCall: Address; client?: PublicWalletClient & TestActions; testAddress: Address; call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; queryOutput: ExactInQueryOutput | ExactOutQueryOutput; swapKind: SwapKind; wethIsEth: boolean; - outputTest?: { + outputTest: { testExactOutAmount: boolean; percentage: number; }; @@ -50,11 +49,11 @@ export async function assertSwapResultWithForkTest({ wethIsEth, swap, chainId, - contractToCall: routerAddress, + contractToCall, client, testAddress, call: call as SwapBuildOutputExactIn, - outputTest: outputTest || TEST_CONSTANTS.defaultOutputTest, + outputTest, exactInQueryOutput: queryOutput as ExactInQueryOutput, }); } else { @@ -62,7 +61,7 @@ export async function assertSwapResultWithForkTest({ wethIsEth, swap, chainId, - contractToCall: routerAddress, + contractToCall, client, testAddress, call: call as SwapBuildOutputExactOut, diff --git a/test/lib/utils/swapBuildHelpers.ts b/test/lib/utils/swapBuildHelpers.ts index 0bd4709cf..3a8d95109 100644 --- a/test/lib/utils/swapBuildHelpers.ts +++ b/test/lib/utils/swapBuildHelpers.ts @@ -7,6 +7,7 @@ import { SwapBuildOutputExactOut, Permit2, } from '@/index'; +import { Address } from 'viem'; import { serializeCallData } from './swapTestDataHelpers'; /** @@ -16,6 +17,8 @@ import { serializeCallData } from './swapTestDataHelpers'; * @param slippage - Slippage tolerance * @param deadline - Transaction deadline * @param wethIsEth - Whether WETH should be treated as native ETH + * @param sender - Optional sender address (required for V2 swaps) + * @param recipient - Optional recipient address (required for V2 swaps) * @returns The built call and its serialized form */ export function buildAndSerializeCall( @@ -24,16 +27,36 @@ export function buildAndSerializeCall( slippage: Slippage, deadline: bigint, wethIsEth: boolean, + sender?: Address, + recipient?: Address, ): { call: SwapBuildOutputExactIn | SwapBuildOutputExactOut; serializedCall: unknown; } { - const call = swap.buildCall({ + const baseInput = { slippage, deadline, queryOutput, wethIsEth, - }); + }; + + // V2 swaps require sender and recipient + if (swap.protocolVersion === 2) { + if (!sender || !recipient) { + throw new Error( + 'V2 swaps require sender and recipient addresses to be provided', + ); + } + const call = swap.buildCall({ + ...baseInput, + sender, + recipient, + }); + const serializedCall = serializeCallData(call); + return { call, serializedCall }; + } + + const call = swap.buildCall(baseInput); const serializedCall = serializeCallData(call); @@ -75,4 +98,3 @@ export function buildAndSerializeCallWithPermit2( return { call, serializedCall }; } - diff --git a/test/lib/utils/swapHelpers.ts b/test/lib/utils/swapHelpers.ts index f1101b14c..4c4e28f13 100644 --- a/test/lib/utils/swapHelpers.ts +++ b/test/lib/utils/swapHelpers.ts @@ -1,15 +1,12 @@ import { Address, TestActions } from 'viem'; import { ChainId, - Slippage, Swap, ZERO_ADDRESS, SwapBuildOutputExactOut, NATIVE_ASSETS, SwapBuildOutputExactIn, - SwapBuildCallInput, SwapKind, - Permit2Helper, PublicWalletClient, ExactOutQueryOutput, ExactInQueryOutput, @@ -31,61 +28,6 @@ export function areBigIntsWithinPercent( return difference <= tolerance; } -export async function assertV2SwapExactIn({ - contractToCall, - client, - rpcUrl, - chainId, - swap, - wethIsEth, -}: { - contractToCall: Address; - client: PublicWalletClient & TestActions; - rpcUrl: string; - chainId: ChainId; - swap: Swap; - wethIsEth: boolean; - usePermit2Signatures?: boolean; - outputTest?: { - testExactOutAmount: boolean; - percentage: number; - }; -}) { - const testAddress = (await client.getAddresses())[0]; - const slippage = Slippage.fromPercentage('0.1'); - const deadline = 999999999999999999n; - - const expected = await swap.query(rpcUrl); - if (expected.swapKind !== SwapKind.GivenIn) throw Error('Expected GivenIn'); - expect(expected.expectedAmountOut.amount > 0n).to.be.true; - - const buildCallInput: SwapBuildCallInput = { - slippage, - deadline, - queryOutput: expected, - wethIsEth, - sender: testAddress, - recipient: testAddress, - }; - - const call = swap.buildCall(buildCallInput) as SwapBuildOutputExactIn; - - await assertResultExactIn({ - wethIsEth, - swap, - chainId, - contractToCall, - client, - testAddress, - call, - outputTest: { - testExactOutAmount: true, - percentage: 0, - }, - exactInQueryOutput: expected, - }); -} - export async function assertResultExactIn({ wethIsEth, swap, @@ -176,54 +118,6 @@ export async function assertResultExactIn({ } } -export async function assertV2SwapExactOut({ - contractToCall, - client, - rpcUrl, - chainId, - swap, - wethIsEth, -}: { - contractToCall: Address; - client: PublicWalletClient & TestActions; - rpcUrl: string; - chainId: ChainId; - swap: Swap; - wethIsEth: boolean; -}) { - const testAddress = (await client.getAddresses())[0]; - const slippage = Slippage.fromPercentage('0.1'); - const deadline = 999999999999999999n; - - const expected = await swap.query(rpcUrl); - if (expected.swapKind !== SwapKind.GivenOut) - throw Error('Expected GivenOut'); - - const buildCallInput: SwapBuildCallInput = { - slippage, - deadline, - queryOutput: expected, - wethIsEth, - sender: testAddress, - recipient: testAddress, - }; - - expect(expected.expectedAmountIn.amount > 0n).to.be.true; - - const call = swap.buildCall(buildCallInput) as SwapBuildOutputExactOut; - - await assertResultExactOut({ - wethIsEth, - swap, - chainId, - contractToCall, - client, - testAddress, - call, - exactOutQueryOutput: expected, - }); -} - export async function assertResultExactOut({ wethIsEth, swap, diff --git a/test/lib/utils/swapQueryHelpers.ts b/test/lib/utils/swapQueryHelpers.ts index 5d2ea2546..ab5bb2abb 100644 --- a/test/lib/utils/swapQueryHelpers.ts +++ b/test/lib/utils/swapQueryHelpers.ts @@ -4,7 +4,10 @@ import { ExactInQueryOutput, ExactOutQueryOutput, } from '@/index'; -import { deserializeQueryOutput, hasSavedTestData } from './swapTestDataHelpers'; +import { + deserializeQueryOutput, + hasSavedTestData, +} from './swapTestDataHelpers'; /** * Loads query output from saved test data or by querying the swap. @@ -51,4 +54,3 @@ export async function loadQueryOutput< } return queryResult as T; } - diff --git a/test/lib/utils/swapTestDataAccess.ts b/test/lib/utils/swapTestDataAccess.ts index 8ad5d15e5..73b7fa513 100644 --- a/test/lib/utils/swapTestDataAccess.ts +++ b/test/lib/utils/swapTestDataAccess.ts @@ -101,4 +101,3 @@ export function setTestData( contextDataObj[swapKindKey] = dataToSave; } } - diff --git a/test/lib/utils/swapTestFixture.ts b/test/lib/utils/swapTestFixture.ts index 80a752902..46205d2cd 100644 --- a/test/lib/utils/swapTestFixture.ts +++ b/test/lib/utils/swapTestFixture.ts @@ -19,19 +19,38 @@ import { setTokenBalances, approveSpenderOnPermit2, } from './helper'; -import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; import type { Test } from '../../entities/swaps/v3/swapTestConfig'; +import type { TestV2 } from '../../entities/swaps/v2/swapTestConfig'; +import { NetworkSetup } from '../../anvil/anvil-global-setup'; /** - * Sets up the fork and test client for integration tests. - * Configures token approvals for Permit2 and creates a snapshot for test isolation. - * @param test - The test configuration + * Base type constraint for test configurations that can be used with setupForkAndClientBase. + */ +type TestConfigBase = { + chainId: ChainId; + anvilNetwork: NetworkSetup; + blockNumber?: bigint; + path: Path; +}; + +/** + * Base function for setting up fork and test client. + * Handles common setup logic shared between V2 and V3 tests. + * @param test - The test configuration (Test or TestV2) * @param jobId - Job ID for fork management + * @param testAddress - The expected test address to validate + * @param setupApprovals - Optional function to run approval setup before snapshot * @returns Fork RPC URL, test client, and pre-approval snapshot */ -export async function setupForkAndClient( - test: Test, +async function setupForkAndClientBase( + test: T, jobId: number, + testAddress: Address, + setupApprovals?: ( + client: PublicWalletClient & TestActions, + test: T, + testAddress: Address, + ) => Promise, ): Promise<{ fork: { rpcUrl: string }; client: PublicWalletClient & TestActions; @@ -47,18 +66,14 @@ export async function setupForkAndClient( .extend(walletActions); const testAddressCheck = (await client.getAddresses())[0]; - if (testAddressCheck !== TEST_CONSTANTS.ANVIL_TEST_ADDRESS) { + if (testAddressCheck !== testAddress) { throw Error('Test address mismatch'); } - // First step of permit2 flow - user approves Permit2 contract to spend input token (this is needed for direct or signature approval) - await approveSpenderOnTokens( - client, - TEST_CONSTANTS.ANVIL_TEST_ADDRESS, - [test.path.tokens[0].address], - PERMIT2[test.chainId], - [MAX_UINT256], - ); + // Run optional approval setup (e.g., Permit2 for V3) + if (setupApprovals) { + await setupApprovals(client, test, testAddress); + } // Uses Special RPC methods to revert state back to same snapshot for each test // https://github.com/trufflesuite/ganache-cli-archive/blob/master/README.md @@ -67,6 +82,40 @@ export async function setupForkAndClient( return { fork, client, snapshotPreApprove }; } +/** + * Sets up the fork and test client for integration tests. + * Configures token approvals for Permit2 and creates a snapshot for test isolation. + * @param test - The test configuration + * @param jobId - Job ID for fork management + * @param testAddress - The test address to use for approvals + * @returns Fork RPC URL, test client, and pre-approval snapshot + */ +export async function setupForkAndClientV3( + test: Test, + jobId: number, + testAddress: Address, +): Promise<{ + fork: { rpcUrl: string }; + client: PublicWalletClient & TestActions; + snapshotPreApprove: Hex; +}> { + return setupForkAndClientBase( + test, + jobId, + testAddress, + async (client, test, testAddress) => { + // First step of permit2 flow - user approves Permit2 contract to spend input token (this is needed for direct or signature approval) + await approveSpenderOnTokens( + client, + testAddress, + [test.path.tokens[0].address], + PERMIT2[test.chainId], + [MAX_UINT256], + ); + }, + ); +} + /** * Sets up Permit2 approval for the router. * Reverts to pre-approval snapshot, sets token balances, and approves router via Permit2. @@ -75,6 +124,7 @@ export async function setupForkAndClient( * @param path - The swap path * @param routerAddress - Address of the router contract * @param snapshotPreApprove - Snapshot ID before permit2 approval + * @param balanceMultiplier - Multiplier for setting token balances * @returns New snapshot ID after permit2 approval setup */ export async function setupPermit2Approval( @@ -83,6 +133,7 @@ export async function setupPermit2Approval( path: Path, routerAddress: Address, snapshotPreApprove: Hex, + balanceMultiplier: bigint, ): Promise { // Revert to pre-approval snapshot await client.revert({ @@ -101,7 +152,7 @@ export async function setupPermit2Approval( testAddress, [path.tokens[0].address], [slot], - [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], + [path.inputAmountRaw * balanceMultiplier], ); // Second step of permit2 flow - user Permit2 approves router to spend input token @@ -122,6 +173,7 @@ export async function setupPermit2Approval( * @param testAddress - Address of the test account * @param path - The swap path * @param routerAddress - Address of the router contract + * @param balanceMultiplier - Multiplier for setting token balances * @returns Permit2 signature and snapshot ID after setup */ export async function setupPermit2Signature( @@ -129,6 +181,7 @@ export async function setupPermit2Signature( testAddress: Address, path: Path, routerAddress: Address, + balanceMultiplier: bigint, ): Promise<{ permit2: Permit2; snapshot: Hex; @@ -144,7 +197,7 @@ export async function setupPermit2Signature( testAddress, [path.tokens[0].address], [slot], - [path.inputAmountRaw * TEST_CONSTANTS.BALANCE_MULTIPLIER], + [path.inputAmountRaw * balanceMultiplier], ); await approveSpenderOnPermit2( @@ -176,3 +229,73 @@ export async function setupPermit2Signature( return { permit2, snapshot }; } + +/** + * Sets up the fork and test client for V2 integration tests. + * Configures the test client and creates a snapshot for test isolation. + * @param test - The V2 test configuration + * @param jobId - Job ID for fork management + * @param testAddress - The test address to use for validation + * @returns Fork RPC URL, test client, and pre-approval snapshot + */ +export async function setupForkAndClientV2( + test: TestV2, + jobId: number, + testAddress: Address, +): Promise<{ + fork: { rpcUrl: string }; + client: PublicWalletClient & TestActions; + snapshotPreApprove: Hex; +}> { + return setupForkAndClientBase( + test, + jobId, + testAddress, + // No approval setup needed for V2 + ); +} + +/** + * Sets up V2 approval for the vault. + * Reverts to pre-approval snapshot, sets token balance for input token, and approves VAULT_V2. + * @param client - The test client + * @param testAddress - Address of the test account + * @param path - The swap path + * @param vaultAddress - Address of the VAULT_V2 contract + * @param balanceMultiplier - Multiplier for setting token balances + * @returns New snapshot ID after approval setup + */ +export async function setupV2Approval( + client: PublicWalletClient & TestActions, + testAddress: Address, + path: Path, + vaultAddress: Address, + balanceMultiplier: bigint, +): Promise { + const slot = await findTokenBalanceSlot( + client, + testAddress, + path.tokens[0].address, + ); + + await setTokenBalances( + client, + testAddress, + [path.tokens[0].address], + [slot], + [path.inputAmountRaw * balanceMultiplier], + ); + + // Approve VAULT_V2 to spend input token directly (V2 doesn't use Permit2) + await approveSpenderOnTokens( + client, + testAddress, + [path.tokens[0].address], + vaultAddress, + [MAX_UINT256], + ); + + const snapshot = await client.snapshot(); + + return snapshot; +} diff --git a/test/lib/utils/swapTestRunner.ts b/test/lib/utils/swapTestRunner.ts index bba9e3c62..8da14792d 100644 --- a/test/lib/utils/swapTestRunner.ts +++ b/test/lib/utils/swapTestRunner.ts @@ -25,7 +25,6 @@ import { deserializePermit2, serializeQueryOutput, } from './swapTestDataHelpers'; -import { TEST_CONSTANTS } from '../../entities/swaps/v3/swapTestConfig'; /** * Configuration for running a swap test. @@ -36,7 +35,7 @@ export type TestSwapConfig = { swapKind: SwapKind; wethIsEth: boolean; fork?: { rpcUrl: string }; - routerAddress: Address; + contractToCall: Address; client?: PublicWalletClient & TestActions; testAddress: Address; slippage: Slippage; @@ -44,7 +43,7 @@ export type TestSwapConfig = { testName: string; context: string; subContext?: string; - outputTest?: { + outputTest: { testExactOutAmount: boolean; percentage: number; }; @@ -69,7 +68,7 @@ async function executeSwapTestCore( swapKind, wethIsEth, fork, - routerAddress, + contractToCall, client, testAddress, slippage, @@ -77,7 +76,7 @@ async function executeSwapTestCore( testName, context, subContext, - outputTest = TEST_CONSTANTS.defaultOutputTest, + outputTest, } = config; const swap = new Swap({ @@ -111,6 +110,7 @@ async function executeSwapTestCore( ); // Build and serialize call (use permit2 variant if permit2 is provided) + // V2 swaps require sender and recipient, V3 swaps don't const { call, serializedCall } = permit2ToUse ? buildAndSerializeCallWithPermit2( swap, @@ -126,6 +126,8 @@ async function executeSwapTestCore( slippage, deadline, wethIsEth, + swap.protocolVersion === 2 ? testAddress : undefined, + swap.protocolVersion === 2 ? testAddress : undefined, ); if (hasSavedTestData(savedData)) { @@ -137,7 +139,7 @@ async function executeSwapTestCore( await assertSwapResultWithForkTest({ swap, chainId, - routerAddress, + contractToCall, client, testAddress, call, @@ -175,12 +177,7 @@ export async function runSwapTest( savedSwapTestData: Record, swapTestData: Record, ): Promise { - return executeSwapTestCore( - config, - savedSwapTestData, - swapTestData, - undefined, - ); + return executeSwapTestCore(config, savedSwapTestData, swapTestData); } /** diff --git a/test/validateAllNetworks.test.ts b/test/validateAllNetworks.test.ts index 05249d044..355f2f130 100644 --- a/test/validateAllNetworks.test.ts +++ b/test/validateAllNetworks.test.ts @@ -218,7 +218,7 @@ describe('validateAllNetworks', () => { swapKind: SwapKind.GivenIn, wethIsEth: false, fork: { rpcUrl }, - routerAddress: AddressProvider.Router(chainId), + contractToCall: AddressProvider.Router(chainId), client, testAddress, slippage: TEST_CONSTANTS.slippage, From 2752068cfc1bf09089c2fad53a55b6cb12eab01c Mon Sep 17 00:00:00 2001 From: johngrantuk Date: Thu, 18 Dec 2025 11:55:06 +0000 Subject: [PATCH 13/13] Update token format. --- test/entities/swaps/v2/swapTestData.json | 72 ++-- test/entities/swaps/v3/swapTestData.json | 426 ++++++++--------------- test/lib/utils/swapTestDataHelpers.ts | 18 +- 3 files changed, 180 insertions(+), 336 deletions(-) diff --git a/test/entities/swaps/v2/swapTestData.json b/test/entities/swaps/v2/swapTestData.json index a250dc219..8531cb77c 100644 --- a/test/entities/swaps/v2/swapTestData.json +++ b/test/entities/swaps/v2/swapTestData.json @@ -9,8 +9,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "100000000000", "scalar": "1", @@ -21,8 +20,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "44772212", "scalar": "1", @@ -38,8 +36,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "44727439", "scalar": "1", @@ -56,8 +53,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "100000", "scalar": "1", @@ -68,8 +64,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "187960564531", "scalar": "1", @@ -85,8 +80,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "188148525095", "scalar": "1", @@ -105,8 +99,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "100000000000", "scalar": "1", @@ -117,8 +110,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "44772212", "scalar": "1", @@ -134,8 +126,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "44727439", "scalar": "1", @@ -152,8 +143,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "100000", "scalar": "1", @@ -164,8 +154,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "187960564531", "scalar": "1", @@ -181,8 +170,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "188148525095", "scalar": "1", @@ -203,8 +191,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "10000000000", "scalar": "1", @@ -215,8 +202,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "11540010705792", "scalar": "1", @@ -232,8 +218,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "11528470695086", "scalar": "1", @@ -250,8 +235,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "1000000000000", "scalar": "1", @@ -262,8 +246,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "892585871", "scalar": "1", @@ -279,8 +262,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "893478456", "scalar": "1", @@ -299,8 +281,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "10000000000", "scalar": "1", @@ -311,8 +292,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "11540010705785", "scalar": "1", @@ -328,8 +308,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "11528470695079", "scalar": "1", @@ -346,8 +325,7 @@ "token": { "chainId": 1, "address": "0xba100000625a3754423978a60c9317c58a424e3d", - "decimals": 18, - "wrapped": "0xba100000625a3754423978a60c9317c58a424e3d" + "decimals": 18 }, "amount": "1000000000000", "scalar": "1", @@ -358,8 +336,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "892585871", "scalar": "1", @@ -375,8 +352,7 @@ "token": { "chainId": 1, "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "decimals": 18, - "wrapped": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + "decimals": 18 }, "amount": "893478456", "scalar": "1", diff --git a/test/entities/swaps/v3/swapTestData.json b/test/entities/swaps/v3/swapTestData.json index 4ffe258ae..33ce4878b 100644 --- a/test/entities/swaps/v3/swapTestData.json +++ b/test/entities/swaps/v3/swapTestData.json @@ -9,8 +9,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -21,8 +20,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27910757", "scalar": "1000000000000", @@ -38,8 +36,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27882846", "scalar": "1000000000000", @@ -56,8 +53,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -68,8 +64,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36196306603632216", "scalar": "1", @@ -85,8 +80,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36232502910235848", "scalar": "1", @@ -106,8 +100,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -118,8 +111,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27346989", "scalar": "1000000000000", @@ -135,8 +127,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27319642", "scalar": "1000000000000", @@ -168,8 +159,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -180,8 +170,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36782051712834578", "scalar": "1", @@ -197,8 +186,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36818833764547412", "scalar": "1", @@ -234,8 +222,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -246,8 +233,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27910757", "scalar": "1000000000000", @@ -263,8 +249,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "27882846", "scalar": "1000000000000", @@ -281,8 +266,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -293,8 +277,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36196306603632216", "scalar": "1", @@ -310,8 +293,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "36232502910235848", "scalar": "1", @@ -334,8 +316,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "1000000000", "scalar": "1000000000000", @@ -346,8 +327,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "331115889255098973", "scalar": "1", @@ -363,8 +343,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "330784773365843874", "scalar": "1", @@ -396,8 +375,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "100000000000000000", "scalar": "1", @@ -408,8 +386,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "286143408", "scalar": "1000000000000", @@ -425,8 +402,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "286429551", "scalar": "1000000000000", @@ -460,8 +436,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "1000000000", "scalar": "1000000000000", @@ -472,8 +447,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "331115889255098973", "scalar": "1", @@ -489,8 +463,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "330784773365843874", "scalar": "1", @@ -522,8 +495,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "100000000000000000", "scalar": "1", @@ -534,8 +506,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "286143408", "scalar": "1000000000000", @@ -551,8 +522,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "286429551", "scalar": "1000000000000", @@ -588,8 +558,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "1000000000", "scalar": "1000000000000", @@ -600,8 +569,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "331115889255098973", "scalar": "1", @@ -617,8 +585,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "330784773365843874", "scalar": "1", @@ -635,8 +602,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "100000000000000000", "scalar": "1", @@ -647,8 +613,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "334014320", "scalar": "1000000000000", @@ -664,8 +629,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "334348334", "scalar": "1000000000000", @@ -684,8 +648,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "1000000000", "scalar": "1000000000000", @@ -696,8 +659,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "272624076217920941", "scalar": "1", @@ -713,8 +675,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "272351452141703020", "scalar": "1", @@ -731,8 +692,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "100000000000000000", "scalar": "1", @@ -743,8 +703,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "403791060", "scalar": "1000000000000", @@ -760,8 +719,7 @@ "token": { "chainId": 8453, "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "decimals": 6, - "wrapped": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" + "decimals": 6 }, "amount": "404194851", "scalar": "1000000000000", @@ -784,8 +742,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -796,8 +753,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24016376", "scalar": "1000000000000", @@ -813,8 +769,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "23992359", "scalar": "1000000000000", @@ -832,8 +787,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -844,8 +798,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42120778391056420", "scalar": "1", @@ -861,8 +814,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42162899169447476", "scalar": "1", @@ -883,8 +835,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -895,8 +846,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "23469866", "scalar": "1000000000000", @@ -912,8 +862,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "23446396", "scalar": "1000000000000", @@ -946,8 +895,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -958,8 +906,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42915394418564706", "scalar": "1", @@ -975,8 +922,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42958309812983270", "scalar": "1", @@ -1013,8 +959,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -1025,8 +970,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24016376", "scalar": "1000000000000", @@ -1042,8 +986,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "23992359", "scalar": "1000000000000", @@ -1061,8 +1004,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -1073,8 +1015,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42120778391056420", "scalar": "1", @@ -1090,8 +1031,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "42162899169447476", "scalar": "1", @@ -1115,8 +1055,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -1127,8 +1066,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41102074809553470", "scalar": "1", @@ -1144,8 +1082,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41060972734743916", "scalar": "1", @@ -1178,8 +1115,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -1190,8 +1126,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24160779", "scalar": "1000000000000", @@ -1207,8 +1142,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24184939", "scalar": "1000000000000", @@ -1243,8 +1177,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -1255,8 +1188,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41102074809553470", "scalar": "1", @@ -1272,8 +1204,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41060972734743916", "scalar": "1", @@ -1306,8 +1237,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -1318,8 +1248,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24160779", "scalar": "1000000000000", @@ -1335,8 +1264,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24184939", "scalar": "1000000000000", @@ -1373,8 +1301,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -1385,8 +1312,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41102074809553470", "scalar": "1", @@ -1402,8 +1328,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "41060972734743916", "scalar": "1", @@ -1421,8 +1346,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -1433,8 +1357,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24609406", "scalar": "1000000000000", @@ -1450,8 +1373,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "24634015", "scalar": "1000000000000", @@ -1471,8 +1393,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "100000000", "scalar": "1000000000000", @@ -1483,8 +1404,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "40176740744878721", "scalar": "1", @@ -1500,8 +1420,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "40136564004133842", "scalar": "1", @@ -1519,8 +1438,7 @@ "token": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", - "decimals": 18, - "wrapped": "0x4200000000000000000000000000000000000006" + "decimals": 18 }, "amount": "10000000000000000", "scalar": "1", @@ -1531,8 +1449,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "25174229", "scalar": "1000000000000", @@ -1548,8 +1465,7 @@ "token": { "chainId": 8453, "address": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42", - "decimals": 6, - "wrapped": "0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42" + "decimals": 6 }, "amount": "25199403", "scalar": "1000000000000", @@ -1572,8 +1488,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -1584,8 +1499,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "576500", "scalar": "1000000000000", @@ -1601,8 +1515,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "575923", "scalar": "1000000000000", @@ -1620,8 +1533,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -1632,8 +1544,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104118574098812", "scalar": "1", @@ -1649,8 +1560,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104222692672910", "scalar": "1", @@ -1671,8 +1581,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -1683,8 +1592,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "576061", "scalar": "1000000000000", @@ -1700,8 +1608,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "575484", "scalar": "1000000000000", @@ -1734,8 +1641,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -1746,8 +1652,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104159047509227", "scalar": "1", @@ -1763,8 +1668,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104263206556736", "scalar": "1", @@ -1801,8 +1705,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -1813,8 +1716,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "576500", "scalar": "1000000000000", @@ -1830,8 +1732,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "575923", "scalar": "1000000000000", @@ -1849,8 +1750,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -1861,8 +1761,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104118574098812", "scalar": "1", @@ -1878,8 +1777,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "104222692672910", "scalar": "1", @@ -1903,8 +1801,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -1915,8 +1812,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100949709114218", "scalar": "1", @@ -1932,8 +1828,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100848759405103", "scalar": "1", @@ -1966,8 +1861,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -1978,8 +1872,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "594370", "scalar": "1000000000000", @@ -1995,8 +1888,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "594964", "scalar": "1000000000000", @@ -2031,8 +1923,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -2043,8 +1934,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100949709114218", "scalar": "1", @@ -2060,8 +1950,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100848759405103", "scalar": "1", @@ -2094,8 +1983,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -2106,8 +1994,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "594370", "scalar": "1000000000000", @@ -2123,8 +2010,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "594964", "scalar": "1000000000000", @@ -2161,8 +2047,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -2173,8 +2058,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100949709114218", "scalar": "1", @@ -2190,8 +2074,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100848759405103", "scalar": "1", @@ -2209,8 +2092,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -2221,8 +2103,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "594597", "scalar": "1000000000000", @@ -2238,8 +2119,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "595191", "scalar": "1000000000000", @@ -2259,8 +2139,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "600000", "scalar": "1000000000000", @@ -2271,8 +2150,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100872970306657", "scalar": "1", @@ -2288,8 +2166,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100772097336350", "scalar": "1", @@ -2307,8 +2184,7 @@ "token": { "chainId": 11155111, "address": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", - "decimals": 18, - "wrapped": "0x7b79995e5f793a07bc00c21412e50ecae098e7f9" + "decimals": 18 }, "amount": "100000000000000", "scalar": "1", @@ -2319,8 +2195,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "595049", "scalar": "1000000000000", @@ -2336,8 +2211,7 @@ "token": { "chainId": 11155111, "address": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8", - "decimals": 6, - "wrapped": "0x94a9d9ac8a22534e3faca9f4e7f2e2cf85d5e4c8" + "decimals": 6 }, "amount": "595644", "scalar": "1000000000000", @@ -2356,13 +2230,12 @@ "queryOutput": { "swapKind": 0, "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "pathAmounts": ["9999530199327128141686"], + "pathAmounts": ["9999530198927941607705"], "amountIn": { "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "10000000000", "scalar": "1000000000000", @@ -2373,30 +2246,28 @@ "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, - "amount": "9999530199327128141686", + "amount": "9999530198927941607705", "scalar": "1", "decimalScale": "1000000000000000000", - "scale18": "9999530199327128141686" + "scale18": "9999530198927941607705" } }, "call": { "to": "0x136f1EFcC3f8f88516B9E94110D56FDBfB1778d1", - "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a4286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640c518cc85280000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "callData": "0x19c6989f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000136f1efcc3f8f88516b9e94110d56fdbfb1778d1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000412916dafc5c43306388c6fcb45dd7f4f22951698b24a9f52e4e6766ee5b2e5e4e5a7097aa3667fcf04802180ae8f037fc8a93afa5c99eac41c38b4032f83e71cf1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a4286f580d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a763ffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000002540be40000000000000000000000000000000000000000000000021d889640683f3881310000000000000000000000000000000000000000000000000000000000000003000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000d4fa2d31b7968e448877f69a96de69f5de8cd23e000000000000000000000000000000000000000000000000000000000000000100000000000000000000000085b2b559bc2d21104c4defdd6efca8a20343361d000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c71ea051a5f82c67adcf634c36ffe6334793d24c00000000000000000000000040d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "value": "0", "minAmountOut": { "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, - "amount": "9989530669127801013544", + "amount": "9989530668729013666097", "scalar": "1", "decimalScale": "1000000000000000000", - "scale18": "9989530669127801013544" + "scale18": "9989530668729013666097" } }, "permit2": { @@ -2424,8 +2295,7 @@ "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, "amount": "100000000000000000000", "scalar": "1", @@ -2436,8 +2306,7 @@ "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "100004670", "scalar": "1000000000000", @@ -2453,8 +2322,7 @@ "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "100104674", "scalar": "1000000000000", @@ -2491,8 +2359,7 @@ "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "10000000000", "scalar": "1000000000000", @@ -2503,8 +2370,7 @@ "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, "amount": "9999530198927941607705", "scalar": "1", @@ -2520,8 +2386,7 @@ "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, "amount": "9989530668729013666097", "scalar": "1", @@ -2539,8 +2404,7 @@ "token": { "chainId": 1, "address": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f", - "decimals": 18, - "wrapped": "0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f" + "decimals": 18 }, "amount": "100000000000000000000", "scalar": "1", @@ -2551,8 +2415,7 @@ "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "100004734", "scalar": "1000000000000", @@ -2568,8 +2431,7 @@ "token": { "chainId": 1, "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "decimals": 6, - "wrapped": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + "decimals": 6 }, "amount": "100104738", "scalar": "1000000000000", diff --git a/test/lib/utils/swapTestDataHelpers.ts b/test/lib/utils/swapTestDataHelpers.ts index 3d2e8b6ab..95f4d3077 100644 --- a/test/lib/utils/swapTestDataHelpers.ts +++ b/test/lib/utils/swapTestDataHelpers.ts @@ -25,7 +25,10 @@ export const serializeTokenAmount = (tokenAmount: TokenAmount) => { ...(tokenAmount.token.name !== undefined && { name: tokenAmount.token.name, }), - wrapped: tokenAmount.token.wrapped, + ...('wrapped' in tokenAmount.token && + tokenAmount.token.wrapped !== undefined && { + wrapped: tokenAmount.token.wrapped, + }), }, amount: tokenAmount.amount.toString(), scalar: tokenAmount.scalar.toString(), @@ -66,7 +69,7 @@ export const deserializeTokenAmount = (serialized: unknown): TokenAmount => { decimals: number; symbol?: string; name?: string; - wrapped: Address; + wrapped?: Address; }; amount: string; scalar?: string; @@ -81,10 +84,11 @@ export const deserializeTokenAmount = (serialized: unknown): TokenAmount => { typeof data.token.chainId !== 'number' || typeof data.token.address !== 'string' || typeof data.token.decimals !== 'number' || - typeof data.token.wrapped !== 'string' + (data.token.wrapped !== undefined && + typeof data.token.wrapped !== 'string') ) { throw new Error( - 'Invalid serialized TokenAmount: token object is malformed or missing required fields (chainId, address, decimals, wrapped)', + 'Invalid serialized TokenAmount: token object is malformed or missing required fields (chainId, address, decimals)', ); } @@ -117,7 +121,10 @@ export const deserializeTokenAmount = (serialized: unknown): TokenAmount => { `Invalid serialized TokenAmount: token address "${data.token.address}" is not a valid Ethereum address`, ); } - if (!/^0x[a-fA-F0-9]{40}$/.test(data.token.wrapped)) { + if ( + data.token.wrapped !== undefined && + !/^0x[a-fA-F0-9]{40}$/.test(data.token.wrapped) + ) { throw new Error( `Invalid serialized TokenAmount: wrapped address "${data.token.wrapped}" is not a valid Ethereum address`, ); @@ -136,7 +143,6 @@ export const deserializeTokenAmount = (serialized: unknown): TokenAmount => { data.token.decimals, data.token.symbol, data.token.name, - data.token.wrapped, ); return TokenAmount.fromRawAmount(token, amountBigInt); };