@yodlpay/tokenlists 0.9.0-alpha.8 → 0.9.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/getVersionUpgrade.ts","../src/types.ts","../src/abis-ts/YodlRouterV0.3.abi.ts","../src/abis.ts","../src/abis-ts/YodlRouterV0.1.abi.ts","../src/abis-ts/YodlRouterV0.2.abi.ts","../src/abis-ts/YodlRouterV0.4.abi.ts","../src/abis-ts/YodlRouterV0.5.abi.ts","../src/abis-ts/YodlRouterV0.6.abi.ts","../src/abis-ts/YodlRouterV0.7.abi.ts","../src/abis-ts/YodlRouterV0.8.abi.ts","../src/abis-ts/YodlRouterV0.9.abi.ts","../src/routerlist-v1.ts","../src/diffTokenLists.ts","../src/versionComparator.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["import { Version } from './types';\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { AbiVersion } from 'abis';\nimport { Address } from 'viem';\n\ntype ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n BASE = 'Base',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n WRAPPED = 'wrapped',\n}\n\nexport interface CurveRouterInfo {\n readonly chainId: number;\n readonly address: string;\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: Address;\n readonly timestamp: string;\n readonly version: AbiVersion;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly timestamp: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly nativeTokenName: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n readonly dexes?: string[];\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: Address;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport type TokenListSimple = {\n timestamp: string;\n tokens: TokenInfo[];\n};\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n\nexport interface PriceFeed {\n readonly address: string;\n readonly name: string;\n readonly assetName: string;\n readonly type: string;\n readonly path: string;\n readonly input: string;\n readonly output: string;\n readonly deviation: number;\n readonly decimals: number;\n readonly updateInterval: number;\n readonly chainId: number;\n}\n\nexport interface FiatCurrency {\n readonly name: string;\n readonly symbol: string;\n readonly code: string;\n readonly decimals: number;\n}\n","export const yodlRouterAbiV03 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum YodlRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const;\n","import CurveRouterV13Abi from './abis/curverouterv13.abi.json';\n\nimport { yodlRouterAbiV01 } from './abis-ts/YodlRouterV0.1.abi';\nimport { yodlRouterAbiV02 } from './abis-ts/YodlRouterV0.2.abi';\nimport { yodlRouterAbiV03 } from './abis-ts/YodlRouterV0.3.abi';\nimport { yodlRouterAbiV04 } from './abis-ts/YodlRouterV0.4.abi';\nimport { yodlRouterAbiV05 } from './abis-ts/YodlRouterV0.5.abi';\nimport { yodlRouterAbiV06 } from './abis-ts/YodlRouterV0.6.abi';\nimport { yodlRouterAbiV07 } from './abis-ts/YodlRouterV0.7.abi';\nimport { yodlRouterAbiV08 } from './abis-ts/YodlRouterV0.8.abi';\nimport { yodlRouterAbiV09 } from './abis-ts/YodlRouterV0.9.abi';\n\nexport type AbiVersion =\n | 'test'\n | '0.1'\n | '0.2'\n | '0.3'\n | '0.4'\n | '0.5'\n | '0.6'\n | '0.7'\n | '0.8'\n | '0.9';\n\n// Create a type map of versions to their ABI types\nexport type RouterAbiMap = {\n test: typeof yodlRouterAbiV03;\n '0.1': typeof yodlRouterAbiV01;\n '0.2': typeof yodlRouterAbiV02;\n '0.3': typeof yodlRouterAbiV03;\n '0.4': typeof yodlRouterAbiV04;\n '0.5': typeof yodlRouterAbiV05;\n '0.6': typeof yodlRouterAbiV06;\n '0.7': typeof yodlRouterAbiV07;\n '0.8': typeof yodlRouterAbiV08;\n '0.9': typeof yodlRouterAbiV09;\n};\n\nexport const YODL_ROUTER_ABIS: { [K in AbiVersion]: RouterAbiMap[K] } = {\n test: yodlRouterAbiV03,\n '0.1': yodlRouterAbiV01,\n '0.2': yodlRouterAbiV02,\n '0.3': yodlRouterAbiV03,\n '0.4': yodlRouterAbiV04,\n '0.5': yodlRouterAbiV05,\n '0.6': yodlRouterAbiV06,\n '0.7': yodlRouterAbiV07,\n '0.8': yodlRouterAbiV08,\n '0.9': yodlRouterAbiV09, // WIP\n} as const;\n\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","export const yodlRouterAbiV01 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeDivisor',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Payment',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: '_priceFeeds',\n type: 'address[]',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'price',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'address[]',\n name: '_priceFeeds',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: '_token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_extraFeeDivisor',\n type: 'uint256',\n },\n ],\n name: 'payWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n] as const;\n","export const yodlRouterAbiV02 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Payment',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n ],\n internalType: 'struct HiroRouterV1.HiroCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'payWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n ],\n name: 'payWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum HiroRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n ],\n internalType: 'struct HiroRouterV1.HiroUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'payWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV04 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum YodlRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV05 = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'transferFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter02',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithPancake',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV06 = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'string',\n name: 'currency0',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'ConvertWithExternalRate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'CHAINLINK_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'EXTERNAL_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RATE_VERIFIER',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n name: 'emitConversionEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'transferFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter02',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n name: 'priceFeed',\n type: 'tuple',\n },\n ],\n name: 'verifyRateSignature',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithPancake',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n] as const;\n","export const yodlRouterAbiV07 = [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'receive',\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'CHAINLINK_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'EXTERNAL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MAX_EXTRA_FEE_BPS',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NATIVE_TOKEN',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NULL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'RATE_VERIFIER',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'calculateFee',\n inputs: [\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'emitConversionEvent',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'exchangeRate',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'converted',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeedsUsed',\n type: 'address[2]',\n internalType: 'address[2]',\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'sweep',\n inputs: [\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'uniswapRouter',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract ISwapRouter02',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyRateSignature',\n inputs: [\n {\n name: 'priceFeed',\n type: 'tuple',\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'version',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'wrappedNativeToken',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract IWETH9',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeBps',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeTreasury',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlWithCurve',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'route',\n type: 'address[11]',\n internalType: 'address[11]',\n },\n {\n name: 'swapParams',\n type: 'uint256[5][5]',\n internalType: 'uint256[5][5]',\n },\n {\n name: 'factoryAddresses',\n type: 'address[5]',\n internalType: 'address[5]',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithToken',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n components: [\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithUniswap',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'path',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum YodlUniswapRouter.SwapType',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'event',\n name: 'Convert',\n inputs: [\n {\n name: 'priceFeed0',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ConvertWithExternalRate',\n inputs: [\n {\n name: 'currency0',\n type: 'string',\n indexed: true,\n internalType: 'string',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Yodl',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'fees',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n indexed: false,\n internalType: 'bytes32',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'YodlNativeTokenTransfer',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: true,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureLength',\n inputs: [\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureS',\n inputs: [\n {\n name: 's',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n },\n] as const;\n","export const yodlRouterAbiV08 = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'ECDSAInvalidSignature',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'length',\n type: 'uint256',\n },\n ],\n name: 'ECDSAInvalidSignatureLength',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 's',\n type: 'bytes32',\n },\n ],\n name: 'ECDSAInvalidSignatureS',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'string',\n name: 'currency0',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'ConvertWithExternalRate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'CHAINLINK_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'EXTERNAL_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NULL_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RATE_VERIFIER',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acrossSpokePool',\n outputs: [\n {\n internalType: 'contract V3SpokePoolInterface',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouterNG',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n name: 'emitConversionEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter02',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n name: 'priceFeed',\n type: 'tuple',\n },\n ],\n name: 'verifyRateSignature',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n {\n internalType: 'address',\n name: 'outputToken',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'outputAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'destinationChainId',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'exclusiveRelayer',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'quoteTimestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'fillDeadline',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'exclusivityDeadline',\n type: 'uint32',\n },\n {\n internalType: 'bytes',\n name: 'message',\n type: 'bytes',\n },\n ],\n internalType: 'struct YodlAcrossRouter.YodlAcrossParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithAcross',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[11]',\n name: 'route',\n type: 'address[11]',\n },\n {\n internalType: 'uint256[5][5]',\n name: 'swapParams',\n type: 'uint256[5][5]',\n },\n {\n internalType: 'address[5]',\n name: 'pools',\n type: 'address[5]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV09 = [\n { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },\n { inputs: [], name: 'ECDSAInvalidSignature', type: 'error' },\n {\n inputs: [{ internalType: 'uint256', name: 'length', type: 'uint256' }],\n name: 'ECDSAInvalidSignatureLength',\n type: 'error',\n },\n {\n inputs: [{ internalType: 'bytes32', name: 's', type: 'bytes32' }],\n name: 'ECDSAInvalidSignatureS',\n type: 'error',\n },\n { inputs: [], name: 'ReentrancyGuardReentrantCall', type: 'error' },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'string',\n name: 'currency0',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'ConvertWithExternalRate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'CHAINLINK_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'EXTERNAL_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_CONVENIENCE_FEE_BPS',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NULL_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RATE_VERIFIER',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acrossSpokePool',\n outputs: [\n {\n internalType: 'contract V3SpokePoolInterface',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'feeBps', type: 'uint256' },\n ],\n name: 'calculateFee',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n { internalType: 'contract ICurveRouterNG', name: '', type: 'address' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'int256[2]', name: 'prices', type: 'int256[2]' },\n ],\n name: 'emitConversionEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n ],\n name: 'exchangeRate',\n outputs: [\n { internalType: 'uint256', name: 'converted', type: 'uint256' },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n { internalType: 'int256[2]', name: 'prices', type: 'int256[2]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'address', name: 'token', type: 'address' }],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n { internalType: 'contract ISwapRouter02', name: '', type: 'address' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n name: 'priceFeed',\n type: 'tuple',\n },\n ],\n name: 'verifyRateSignature',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [{ internalType: 'contract IWETH9', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'address', name: 'token', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n { internalType: 'address', name: 'outputToken', type: 'address' },\n { internalType: 'uint256', name: 'outputAmount', type: 'uint256' },\n {\n internalType: 'uint256',\n name: 'destinationChainId',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'exclusiveRelayer',\n type: 'address',\n },\n { internalType: 'uint32', name: 'quoteTimestamp', type: 'uint32' },\n { internalType: 'uint32', name: 'fillDeadline', type: 'uint32' },\n {\n internalType: 'uint32',\n name: 'exclusivityDeadline',\n type: 'uint32',\n },\n { internalType: 'bytes', name: 'message', type: 'bytes' },\n ],\n internalType: 'struct YodlAcrossRouter.YodlAcrossParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithAcross',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'sender', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n { internalType: 'uint256', name: 'amountIn', type: 'uint256' },\n { internalType: 'uint256', name: 'amountOut', type: 'uint256' },\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'address[11]', name: 'route', type: 'address[11]' },\n {\n internalType: 'uint256[5][5]',\n name: 'swapParams',\n type: 'uint256[5][5]',\n },\n { internalType: 'address[5]', name: 'pools', type: 'address[5]' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'uint256', name: 'outAmountGross', type: 'uint256' },\n { internalType: 'uint256', name: 'invoiceAmount', type: 'uint256' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'address', name: 'token', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256',\n name: 'convenienceFeeBps',\n type: 'uint256',\n },\n ],\n internalType:\n 'struct YodlExternalFundingRouter.YodlExternalFundingParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithExternal',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'address', name: 'token', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'sender', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n { internalType: 'uint256', name: 'amountIn', type: 'uint256' },\n { internalType: 'uint256', name: 'amountOut', type: 'uint256' },\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'bytes', name: 'path', type: 'bytes' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n { stateMutability: 'payable', type: 'receive' },\n] as const;\n","import { RouterInfo } from 'types';\n\ntype RouterList = {\n name: string;\n logoUri: string;\n keywords: string[];\n version: {\n major: number;\n minor: number;\n patch: number;\n };\n routers: RouterInfo[];\n};\n\nexport const routerlist: RouterList = {\n name: 'Default',\n logoUri: '',\n keywords: [],\n version: {\n major: 0,\n minor: 0,\n patch: 1,\n },\n routers: [\n {\n chainId: 1,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-08-01T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 10,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 42161,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 100,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 137,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 8453,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 56,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n ],\n};\n","import { TokenInfo } from './types';\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n 'address' | 'chainId'\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== 'address' && s !== 'chainId'\n )\n .filter(s => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { Version } from './types';\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { AbiVersion, YODL_ROUTER_ABIS } from './abis';\nimport chainlist from './chainlist-v1.json';\nimport CurveRouters from './curve.json';\nimport fiatCurrencies from './fiatCurrencies.json';\nimport priceFeeds from './pricefeeds.json';\nimport { routerlist } from './routerlist-v1';\nimport featuredTokenlist from './tokenlist-featured.json';\nimport generatedTokenlist from './tokenlist-generated.json';\nimport { ChainInfo, RouterInfo, TokenInfo } from './types';\n\nexport * from './abis';\nexport * from './diffTokenLists';\nexport * from './getVersionUpgrade';\nexport * from './isVersionUpdate';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './types';\nexport * from './versionComparator';\n\nexport const tokenlist = featuredTokenlist.tokens.concat(\n //@ts-ignore\n generatedTokenlist.tokens\n) as TokenInfo[];\n\nexport function getCurveRouterAddress(chainId: number): string {\n const curveRouter = CurveRouters.find(router => router.chainId == chainId);\n if (curveRouter == undefined) {\n throw new Error(`Unable to find CurveRouterNG for chainId ${chainId}`);\n }\n return curveRouter.address;\n}\n\nexport function getChains(): ChainInfo[] {\n return chainlist.chains;\n}\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.find((token: any) => {\n return (\n token.address.toLowerCase() === tokenAddress.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getPriceFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId);\n}\n\nexport function getTokenFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId && f.type === 'crypto');\n}\n\nexport function getFiatFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId && f.type === 'fiat');\n}\n\nexport function getFiatCurrency(code: string) {\n return fiatCurrencies.find(c => c.code.toLowerCase() === code.toLowerCase());\n}\n\nexport function getFiatCurrencies() {\n return fiatCurrencies;\n}\n\nexport function getPriceFeed(\n chainId: number,\n baseSymbol: string,\n quoteSymbol?: string\n) {\n const _quoteSymbol = quoteSymbol ? quoteSymbol : 'USD';\n const feed = priceFeeds.find(\n f =>\n f.input?.toLowerCase() === baseSymbol.toLowerCase() &&\n f.output === _quoteSymbol &&\n f.chainId === chainId\n );\n if (feed) {\n return feed;\n } else {\n // feed not found, find any feed that matches the base symbol\n return priceFeeds.find(\n f =>\n f.input?.toLowerCase() === baseSymbol.toLowerCase() &&\n f.chainId === chainId\n );\n }\n}\n\nexport function getFeaturedTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (featuredTokenlist.tokens.find((token: any) => {\n return (\n token.symbol.toLowerCase() === tokenSymbol.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n const tokens = tokenlist.filter((token: any) => {\n return (\n token.symbol.toLowerCase() === tokenSymbol.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo[];\n\n if (chainId && tokens && tokens.length > 1) {\n throw new Error(\n `Duplicate tokens found for symbol ${tokenSymbol} on chain ${chainId}:\\n` +\n tokens.map(t => ` - ${t.name} (${t.address})`).join('\\n')\n );\n }\n\n return tokens.length > 0 ? tokens[0] : null;\n}\n\nexport function getTokens(chainId?: number): TokenInfo[] {\n return chainId\n ? (tokenlist.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[])\n : (tokenlist as TokenInfo[]);\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(\n chainId: number,\n version: string\n): RouterInfo | undefined {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n });\n}\n\nexport function getRouterByAddress(\n address: string,\n chainId?: number\n): RouterInfo | undefined {\n const findByAddress = (router: RouterInfo) =>\n router.address.toLowerCase() === address.toLowerCase();\n\n const findByAddressAndChainId = (router: RouterInfo) =>\n router.address.toLowerCase() === address.toLowerCase() &&\n router.chainId == chainId;\n\n const filter = chainId ? findByAddressAndChainId : findByAddress;\n\n const routerInfo = routerlist.routers.find(filter);\n return routerInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getRouterAbi(version: AbiVersion) {\n return YODL_ROUTER_ABIS[version];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}\n\nexport function getNativeToken(chainId: number): string {\n return chainlist.chains.find(chain => chain.chainId === chainId)\n ?.nativeTokenName!;\n}\n\nexport function getNativeWrappedToken(chainId: number): TokenInfo {\n const nativeTokens = featuredTokenlist.tokens.filter(\n t =>\n t.chainId === chainId &&\n t.tags.map(tag => tag.toLowerCase()).includes('wrapped') &&\n t.tags.map(tag => tag.toLowerCase()).includes('native token')\n ) as TokenInfo[];\n if (nativeTokens.length > 1) {\n throw new Error(\n `Found more than one native wrapped token for chain ${chainId}`\n );\n } else if (nativeTokens.length < 1) {\n throw new Error(`No native wrapped token found for chain ${chainId}`);\n }\n return nativeTokens[0];\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}\n","import { diffTokenLists } from './diffTokenLists';\nimport { VersionUpgrade } from './getVersionUpgrade';\nimport { TokenInfo } from './types';\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from './getVersionUpgrade';\nimport { Version } from './types';\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["VersionUpgrade","TokenListTagNames","yodlRouterAbiV03","inputs","internalType","name","type","stateMutability","anonymous","indexed","outputs","components","YODL_ROUTER_ABIS","test","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","routerlist","logoUri","keywords","version","major","minor","patch","routers","chainId","address","timestamp","fee","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","versionComparator","versionA","versionB","tokenlist","featuredTokenlist","tokens","concat","generatedTokenlist","getRouters","needle","chainlist","chains","find","curveRouter","CurveRouters","router","undefined","Error","tokenSymbol","token","symbol","toLowerCase","fiatCurrencies","code","c","priceFeeds","f","sorted","sort","Date","parse","chain","_chainlist$chains$fin","nativeTokenName","nativeTokens","t","tags","map","tag","includes","baseSymbol","quoteSymbol","_quoteSymbol","input","output","shortName","tokenAddress","join","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"wEAKYA,ECAAC,ECLCC,EAAmB,CAC9B,CACEC,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,sBACNC,KAAM,YAGVC,gBAAiB,aACjBD,KAAM,eAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,UAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,WAGVD,KAAM,UACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,gBACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,uBACNC,KAAM,SAER,CACEH,OAAQ,GACRE,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,YAGVD,KAAM,QACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,OACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,0BACNC,KAAM,SAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,SAGVF,aAAc,sCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,YAGV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,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,UACNC,KAAM,SAER,CACEH,OAAQ,CACN,CACEC,aAAc,YACdC,KAAM,cACNC,KAAM,aAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,QACNC,KAAM,WAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,WAER,CACEF,aAAc,YACdC,KAAM,cACNC,KAAM,aAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,oBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,OACdC,KAAM,GACNC,KAAM,SAGVC,gBAAiB,aACjBD,KAAM,aD5HRS,GEzC8B,CAC9B,CACEZ,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,sBACNC,KAAM,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ER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVF,aAAc,sCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,OACdC,KAAM,GACNC,KAAM,SAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,QAER,CACEF,aAAc,6BACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVF,aAAc,wCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEC,gBAAiB,UACjBD,K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CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mC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,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,+CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEC,gBAAiB,UACjBD,KAAM,WAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC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AAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,oCACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,sCACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,qBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,iBACNC,KAAM,UAER,CACEF,aAAc,SACdC,KAAM,eACNC,KAAM,UAER,CACEF,aAAc,SACdC,KAAM,sBACNC,KAAM,UAER,CACEF,aAAc,QACdC,KAAM,UACNC,KAAM,UAGVF,aAAc,2CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,iBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,cACdC,KAAM,QACNC,KAAM,eAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,oCACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,sCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,yCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,oCACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,sCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,+CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,oCACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACN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"}
1
+ {"version":3,"file":"tokenlists.cjs.production.min.js","sources":["../src/getVersionUpgrade.ts","../src/types.ts","../src/abis-ts/YodlRouterV0.3.abi.ts","../src/abis.ts","../src/abis-ts/YodlRouterV0.1.abi.ts","../src/abis-ts/YodlRouterV0.2.abi.ts","../src/abis-ts/YodlRouterV0.4.abi.ts","../src/abis-ts/YodlRouterV0.5.abi.ts","../src/abis-ts/YodlRouterV0.6.abi.ts","../src/abis-ts/YodlRouterV0.7.abi.ts","../src/abis-ts/YodlRouterV0.8.abi.ts","../src/abis-ts/YodlRouterV0.9.abi.ts","../src/routerlist-v1.ts","../src/diffTokenLists.ts","../src/versionComparator.ts","../src/index.ts","../src/isVersionUpdate.ts","../src/minVersionBump.ts","../src/nextVersion.ts"],"sourcesContent":["import { Version } from './types';\n\n/**\n * Enum describing types of version differences\n */\nexport enum VersionUpgrade {\n NONE,\n PATCH,\n MINOR,\n MAJOR,\n}\n\n/**\n * Return the upgrade type from the base version to the update version.\n * Note that downgrades and equivalent versions are both treated as `NONE`.\n * @param base base list\n * @param update update to the list\n */\nexport function getVersionUpgrade(\n base: Version,\n update: Version\n): VersionUpgrade {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n","import { AbiVersion } from 'abis';\nimport { Address } from 'viem';\n\ntype ExtensionValue = string | number | boolean | null | undefined;\n\nexport enum TokenListTagNames {\n // Networks\n MAINNET = 'Mainnet',\n OPTIMISM = 'Optimism',\n ARBITRUM = 'Arbitrum',\n AVALANCHE = 'Avalanche',\n BASE = 'Base',\n TESTNET = 'TESTNET',\n\n // Coin/currency\n STABLECOIN = 'Stablecoin',\n USD = 'USD',\n EUR = 'EUR',\n\n // Misc\n TOP_10 = 'Top10',\n NATIVE_TOKEN = 'Native Token',\n WRAPPED = 'wrapped',\n}\n\nexport interface CurveRouterInfo {\n readonly chainId: number;\n readonly address: string;\n}\n\nexport interface RouterInfo {\n readonly chainId: number;\n readonly address: Address;\n readonly timestamp: string;\n readonly version: AbiVersion;\n readonly fee: string;\n}\n\nexport interface TestnetFaucetInfo {\n readonly chainId: number;\n readonly address: string;\n readonly token: string;\n}\n\nexport interface ChainInfo {\n readonly chainId: number;\n readonly chainName: string;\n // shortName is the EIP3770 short name\n // chain details can be found here: https://github.com/ethereum-lists/chains/tree/master/_data/chains\n readonly shortName: string;\n readonly logoUri: string;\n readonly explorerUrl: string;\n readonly timestamp: string;\n readonly rpcUrls: string[];\n readonly wrappedNativeToken: string;\n readonly nativeTokenName: string;\n readonly feeTreasury?: string;\n readonly testnet: boolean;\n readonly priceFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly tokenFeeds?: {\n readonly [key: string]: string | undefined;\n };\n readonly curveRouterAddress?: string;\n readonly dexes?: string[];\n}\n\nexport interface TokenInfo {\n readonly chainId: number;\n readonly address: Address;\n readonly name: string;\n readonly decimals: number;\n readonly symbol: string;\n readonly coinGeckoId?: string;\n readonly currency?: string;\n readonly logoUri?: string;\n readonly tags?: TokenListTagNames[];\n readonly extensions?: {\n readonly [key: string]:\n | {\n [key: string]:\n | {\n [key: string]: ExtensionValue;\n }\n | ExtensionValue;\n }\n | ExtensionValue;\n };\n}\n\nexport type TokenListSimple = {\n timestamp: string;\n tokens: TokenInfo[];\n};\n\nexport interface Version {\n readonly major: number;\n readonly minor: number;\n readonly patch: number;\n}\n\nexport interface TokenList {\n readonly name: string;\n readonly timestamp: string;\n readonly version: Version;\n readonly tokens: TokenInfo[];\n readonly keywords?: string[];\n readonly tags?: any;\n readonly logoUri?: string;\n}\n\nexport interface PriceFeed {\n readonly address: string;\n readonly name: string;\n readonly assetName: string;\n readonly type: string;\n readonly path: string;\n readonly input: string;\n readonly output: string;\n readonly deviation: number;\n readonly decimals: number;\n readonly updateInterval: number;\n readonly chainId: number;\n}\n\nexport interface FiatCurrency {\n readonly name: string;\n readonly symbol: string;\n readonly code: string;\n readonly decimals: number;\n}\n","export const yodlRouterAbiV03 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum YodlRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n] as const;\n","import CurveRouterV13Abi from './abis/curverouterv13.abi.json';\n\nimport { yodlRouterAbiV01 } from './abis-ts/YodlRouterV0.1.abi';\nimport { yodlRouterAbiV02 } from './abis-ts/YodlRouterV0.2.abi';\nimport { yodlRouterAbiV03 } from './abis-ts/YodlRouterV0.3.abi';\nimport { yodlRouterAbiV04 } from './abis-ts/YodlRouterV0.4.abi';\nimport { yodlRouterAbiV05 } from './abis-ts/YodlRouterV0.5.abi';\nimport { yodlRouterAbiV06 } from './abis-ts/YodlRouterV0.6.abi';\nimport { yodlRouterAbiV07 } from './abis-ts/YodlRouterV0.7.abi';\nimport { yodlRouterAbiV08 } from './abis-ts/YodlRouterV0.8.abi';\nimport { yodlRouterAbiV09 } from './abis-ts/YodlRouterV0.9.abi';\n\nexport type AbiVersion =\n | 'test'\n | '0.1'\n | '0.2'\n | '0.3'\n | '0.4'\n | '0.5'\n | '0.6'\n | '0.7'\n | '0.8'\n | '0.9';\n\n// Create a type map of versions to their ABI types\nexport type RouterAbiMap = {\n test: typeof yodlRouterAbiV03;\n '0.1': typeof yodlRouterAbiV01;\n '0.2': typeof yodlRouterAbiV02;\n '0.3': typeof yodlRouterAbiV03;\n '0.4': typeof yodlRouterAbiV04;\n '0.5': typeof yodlRouterAbiV05;\n '0.6': typeof yodlRouterAbiV06;\n '0.7': typeof yodlRouterAbiV07;\n '0.8': typeof yodlRouterAbiV08;\n '0.9': typeof yodlRouterAbiV09;\n};\n\nexport const YODL_ROUTER_ABIS: { [K in AbiVersion]: RouterAbiMap[K] } = {\n test: yodlRouterAbiV03,\n '0.1': yodlRouterAbiV01,\n '0.2': yodlRouterAbiV02,\n '0.3': yodlRouterAbiV03,\n '0.4': yodlRouterAbiV04,\n '0.5': yodlRouterAbiV05,\n '0.6': yodlRouterAbiV06,\n '0.7': yodlRouterAbiV07,\n '0.8': yodlRouterAbiV08,\n '0.9': yodlRouterAbiV09, // WIP\n} as const;\n\nexport const CURVE_ROUTER_ABI = CurveRouterV13Abi;\n","export const yodlRouterAbiV01 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeDivisor',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Payment',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: '_priceFeeds',\n type: 'address[]',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'price',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'address[]',\n name: '_priceFeeds',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: '_token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_extraFeeDivisor',\n type: 'uint256',\n },\n ],\n name: 'payWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n] as const;\n","export const yodlRouterAbiV02 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Payment',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n ],\n internalType: 'struct HiroRouterV1.HiroCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'payWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n ],\n name: 'payWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum HiroRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n ],\n internalType: 'struct HiroRouterV1.HiroUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'payWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV04 = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_feeTreasury',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_baseFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: '_version',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_uniswapRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_curveRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_wrappedNativeToken',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'baseFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n {\n internalType: 'contract ICurveRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'feeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'returnRemainder',\n type: 'bool',\n },\n {\n internalType: 'enum YodlRouterV1.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n ],\n internalType: 'struct YodlRouterV1.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV05 = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'transferFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter02',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithPancake',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeeds',\n type: 'address[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n","export const yodlRouterAbiV06 = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'string',\n name: 'currency0',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'ConvertWithExternalRate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'CHAINLINK_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'EXTERNAL_FEED',\n outputs: [\n {\n internalType: 'int8',\n name: '',\n type: 'int8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RATE_VERIFIER',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'calculateFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n name: 'emitConversionEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'exchangeRate',\n outputs: [\n {\n internalType: 'uint256',\n name: 'converted',\n type: 'uint256',\n },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n {\n internalType: 'int256[2]',\n name: 'prices',\n type: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'transferFee',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n {\n internalType: 'contract ISwapRouter02',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n name: 'priceFeed',\n type: 'tuple',\n },\n ],\n name: 'verifyRateSignature',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [\n {\n internalType: 'contract IWETH9',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithPancake',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'path',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n {\n internalType: 'address[9]',\n name: 'route',\n type: 'address[9]',\n },\n {\n internalType: 'uint256[3][4]',\n name: 'swapParams',\n type: 'uint256[3][4]',\n },\n {\n internalType: 'address[4]',\n name: 'factoryAddresses',\n type: 'address[4]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'feedAddress',\n type: 'address',\n },\n {\n internalType: 'int8',\n name: 'feedType',\n type: 'int8',\n },\n {\n internalType: 'string',\n name: 'currency',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'extraFeeBps',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'yd',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'yApp',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'sessionId',\n type: 'uint256',\n },\n {\n internalType: 'bytes[]',\n name: 'payload',\n type: 'bytes[]',\n },\n ],\n internalType: 'struct AbstractYodlRouter.YApp[]',\n name: 'yAppList',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n] as const;\n","export const yodlRouterAbiV07 = [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'receive',\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'CHAINLINK_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'EXTERNAL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MAX_EXTRA_FEE_BPS',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NATIVE_TOKEN',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NULL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'RATE_VERIFIER',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'calculateFee',\n inputs: [\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'emitConversionEvent',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'exchangeRate',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'converted',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeedsUsed',\n type: 'address[2]',\n internalType: 'address[2]',\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'sweep',\n inputs: [\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'uniswapRouter',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract ISwapRouter02',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyRateSignature',\n inputs: [\n {\n name: 'priceFeed',\n type: 'tuple',\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'version',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'wrappedNativeToken',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract IWETH9',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeBps',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeTreasury',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlWithCurve',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'route',\n type: 'address[11]',\n internalType: 'address[11]',\n },\n {\n name: 'swapParams',\n type: 'uint256[5][5]',\n internalType: 'uint256[5][5]',\n },\n {\n name: 'factoryAddresses',\n type: 'address[5]',\n internalType: 'address[5]',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithToken',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n components: [\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithUniswap',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'path',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum YodlUniswapRouter.SwapType',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yAppList',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.YApp[]',\n components: [\n {\n name: 'yApp',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sessionId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'event',\n name: 'Convert',\n inputs: [\n {\n name: 'priceFeed0',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ConvertWithExternalRate',\n inputs: [\n {\n name: 'currency0',\n type: 'string',\n indexed: true,\n internalType: 'string',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Yodl',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'fees',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n indexed: false,\n internalType: 'bytes32',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'YodlNativeTokenTransfer',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: true,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureLength',\n inputs: [\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureS',\n inputs: [\n {\n name: 's',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n },\n] as const;\n","export const yodlRouterAbiV08 = [\n { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },\n { inputs: [], name: 'ECDSAInvalidSignature', type: 'error' },\n {\n inputs: [{ internalType: 'uint256', name: 'length', type: 'uint256' }],\n name: 'ECDSAInvalidSignatureLength',\n type: 'error',\n },\n {\n inputs: [{ internalType: 'bytes32', name: 's', type: 'bytes32' }],\n name: 'ECDSAInvalidSignatureS',\n type: 'error',\n },\n { inputs: [], name: 'ReentrancyGuardReentrantCall', type: 'error' },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed0',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'Convert',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'string',\n name: 'currency0',\n type: 'string',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'priceFeed1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate0',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'exchangeRate1',\n type: 'int256',\n },\n ],\n name: 'ConvertWithExternalRate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fees',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'memo',\n type: 'bytes32',\n },\n ],\n name: 'Yodl',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'receiver',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'YodlNativeTokenTransfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'CHAINLINK_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'EXTERNAL_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_EXTRA_FEE_BPS',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NATIVE_TOKEN',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NULL_FEED',\n outputs: [{ internalType: 'int8', name: '', type: 'int8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'RATE_VERIFIER',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acrossSpokePool',\n outputs: [\n {\n internalType: 'contract V3SpokePoolInterface',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'feeBps', type: 'uint256' },\n ],\n name: 'calculateFee',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'curveRouter',\n outputs: [\n { internalType: 'contract ICurveRouterNG', name: '', type: 'address' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'int256[2]', name: 'prices', type: 'int256[2]' },\n ],\n name: 'emitConversionEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n ],\n name: 'exchangeRate',\n outputs: [\n { internalType: 'uint256', name: 'converted', type: 'uint256' },\n {\n internalType: 'address[2]',\n name: 'priceFeedsUsed',\n type: 'address[2]',\n },\n { internalType: 'int256[2]', name: 'prices', type: 'int256[2]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'address', name: 'token', type: 'address' }],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'uniswapRouter',\n outputs: [\n { internalType: 'contract ISwapRouter02', name: '', type: 'address' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n name: 'priceFeed',\n type: 'tuple',\n },\n ],\n name: 'verifyRateSignature',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'version',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'wrappedNativeToken',\n outputs: [{ internalType: 'contract IWETH9', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeBps',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'yodlFeeTreasury',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'address', name: 'token', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n { internalType: 'address', name: 'outputToken', type: 'address' },\n { internalType: 'uint256', name: 'outputAmount', type: 'uint256' },\n {\n internalType: 'uint256',\n name: 'destinationChainId',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'exclusiveRelayer',\n type: 'address',\n },\n { internalType: 'uint32', name: 'quoteTimestamp', type: 'uint32' },\n { internalType: 'uint32', name: 'fillDeadline', type: 'uint32' },\n {\n internalType: 'uint32',\n name: 'exclusivityDeadline',\n type: 'uint32',\n },\n { internalType: 'bytes', name: 'message', type: 'bytes' },\n ],\n internalType: 'struct YodlAcrossRouter.YodlAcrossParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithAcross',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'sender', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n { internalType: 'uint256', name: 'amountIn', type: 'uint256' },\n { internalType: 'uint256', name: 'amountOut', type: 'uint256' },\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'address[11]', name: 'route', type: 'address[11]' },\n {\n internalType: 'uint256[5][5]',\n name: 'swapParams',\n type: 'uint256[5][5]',\n },\n { internalType: 'address[5]', name: 'pools', type: 'address[5]' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithCurve',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'sender', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n { internalType: 'uint256', name: 'amountIn', type: 'uint256' },\n { internalType: 'uint256', name: 'amountOut', type: 'uint256' },\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'bytes', name: 'path', type: 'bytes' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithPancake',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n { internalType: 'address', name: 'token', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithToken',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { internalType: 'address', name: 'sender', type: 'address' },\n { internalType: 'address', name: 'receiver', type: 'address' },\n { internalType: 'uint256', name: 'amountIn', type: 'uint256' },\n { internalType: 'uint256', name: 'amountOut', type: 'uint256' },\n { internalType: 'bytes32', name: 'memo', type: 'bytes32' },\n { internalType: 'bytes', name: 'path', type: 'bytes' },\n {\n components: [\n { internalType: 'address', name: 'feedAddress', type: 'address' },\n { internalType: 'int8', name: 'feedType', type: 'int8' },\n { internalType: 'string', name: 'currency', type: 'string' },\n { internalType: 'uint256', name: 'amount', type: 'uint256' },\n { internalType: 'uint256', name: 'deadline', type: 'uint256' },\n { internalType: 'bytes', name: 'signature', type: 'bytes' },\n ],\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n name: 'priceFeeds',\n type: 'tuple[2]',\n },\n {\n internalType: 'address',\n name: 'extraFeeReceiver',\n type: 'address',\n },\n { internalType: 'uint256', name: 'extraFeeBps', type: 'uint256' },\n {\n internalType: 'enum YodlUniswapRouter.SwapType',\n name: 'swapType',\n type: 'uint8',\n },\n { internalType: 'uint256', name: 'yd', type: 'uint256' },\n {\n components: [\n {\n internalType: 'address',\n name: 'guardAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Guard[]',\n name: 'guards',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'webhookAddress',\n type: 'address',\n },\n { internalType: 'bytes[]', name: 'payload', type: 'bytes[]' },\n ],\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n name: 'webhooks',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n name: 'params',\n type: 'tuple',\n },\n ],\n name: 'yodlWithUniswap',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'payable',\n type: 'function',\n },\n { stateMutability: 'payable', type: 'receive' },\n] as const;\n","export const yodlRouterAbiV09 = [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'receive',\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'CHAINLINK_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'EXTERNAL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MAX_CONVENIENCE_FEE_BPS',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MAX_EXTRA_FEE_BPS',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NATIVE_TOKEN',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NULL_FEED',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'int8',\n internalType: 'int8',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'RATE_VERIFIER',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'acrossSpokePool',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract V3SpokePoolInterface',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'calculateFee',\n inputs: [\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'feeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'curveRouter',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract ICurveRouterNG',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'emitConversionEvent',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'exchangeRate',\n inputs: [\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'converted',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeedsUsed',\n type: 'address[2]',\n internalType: 'address[2]',\n },\n {\n name: 'prices',\n type: 'int256[2]',\n internalType: 'int256[2]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'sweep',\n inputs: [\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'uniswapRouter',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract ISwapRouter02',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyRateSignature',\n inputs: [\n {\n name: 'priceFeed',\n type: 'tuple',\n internalType: 'struct AbstractYodlRouter.PriceFeed',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'version',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'wrappedNativeToken',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract IWETH9',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeBps',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlFeeTreasury',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'yodlWithAcross',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlAcrossRouter.YodlAcrossParams',\n components: [\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'outputToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'outputAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'destinationChainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'exclusiveRelayer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'quoteTimestamp',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'fillDeadline',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'exclusivityDeadline',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'message',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithCurve',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlCurveRouter.YodlCurveParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'route',\n type: 'address[11]',\n internalType: 'address[11]',\n },\n {\n name: 'swapParams',\n type: 'uint256[5][5]',\n internalType: 'uint256[5][5]',\n },\n {\n name: 'pools',\n type: 'address[5]',\n internalType: 'address[5]',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithExternal',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType:\n 'struct YodlExternalFundingRouter.YodlExternalFundingParams',\n components: [\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'outAmountGross',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'invoiceAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'convenienceFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithPancake',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'path',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum YodlUniswapRouter.SwapType',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithToken',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlTransferRouter.YodlTransferParams',\n components: [\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'yodlWithUniswap',\n inputs: [\n {\n name: 'params',\n type: 'tuple',\n internalType: 'struct YodlUniswapRouter.YodlUniswapParams',\n components: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'amountIn',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'amountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'path',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'priceFeeds',\n type: 'tuple[2]',\n internalType: 'struct AbstractYodlRouter.PriceFeed[2]',\n components: [\n {\n name: 'feedAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'feedType',\n type: 'int8',\n internalType: 'int8',\n },\n {\n name: 'currency',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'deadline',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'extraFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'extraFeeBps',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum YodlUniswapRouter.SwapType',\n },\n {\n name: 'yd',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'guards',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Guard[]',\n components: [\n {\n name: 'guardAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n {\n name: 'webhooks',\n type: 'tuple[]',\n internalType: 'struct AbstractYodlRouter.Webhook[]',\n components: [\n {\n name: 'webhookAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'payload',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'event',\n name: 'Convert',\n inputs: [\n {\n name: 'priceFeed0',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ConvertWithExternalRate',\n inputs: [\n {\n name: 'currency0',\n type: 'string',\n indexed: true,\n internalType: 'string',\n },\n {\n name: 'priceFeed1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'exchangeRate0',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n {\n name: 'exchangeRate1',\n type: 'int256',\n indexed: false,\n internalType: 'int256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Yodl',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'fees',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'memo',\n type: 'bytes32',\n indexed: false,\n internalType: 'bytes32',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'YodlNativeTokenTransfer',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'receiver',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'amount',\n type: 'uint256',\n indexed: true,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureLength',\n inputs: [\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureS',\n inputs: [\n {\n name: 's',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n },\n {\n type: 'error',\n name: 'ReentrancyGuardReentrantCall',\n inputs: [],\n },\n] as const;\n","import { RouterInfo } from 'types';\n\ntype RouterList = {\n name: string;\n logoUri: string;\n keywords: string[];\n version: {\n major: number;\n minor: number;\n patch: number;\n };\n routers: RouterInfo[];\n};\n\nexport const routerlist: RouterList = {\n name: 'Default',\n logoUri: '',\n keywords: [],\n version: {\n major: 0,\n minor: 0,\n patch: 1,\n },\n routers: [\n {\n chainId: 1,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-08-01T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 10,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 42161,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 100,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 137,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 8453,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n {\n chainId: 56,\n address: '0x37f17Bc0e317AAaF663908DDBBca296E2119EB2b',\n timestamp: '2025-07-31T00:00:00+00:00',\n version: '0.9',\n fee: '0.002',\n },\n ],\n};\n","import { TokenInfo } from './types';\n\nexport type TokenInfoChangeKey = Exclude<\n keyof TokenInfo,\n 'address' | 'chainId'\n>;\nexport type TokenInfoChanges = Array<TokenInfoChangeKey>;\n\n/**\n * compares two token info key values\n * this subset of full deep equal functionality does not work on objects or object arrays\n * @param a comparison item a\n * @param b comparison item b\n */\nfunction compareTokenInfoProperty(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every((el, i) => b[i] === el);\n }\n return false;\n}\n\n/**\n * Differences between a base list and an updated list.\n */\nexport interface TokenListDiff {\n /**\n * Tokens from updated with chainId/address not present in base list\n */\n readonly added: TokenInfo[];\n /**\n * Tokens from base with chainId/address not present in the updated list\n */\n readonly removed: TokenInfo[];\n /**\n * The token info that changed\n */\n readonly changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n}\n\n/**\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\n * @param base base list\n * @param update updated list\n */\nexport function diffTokenLists(\n base: TokenInfo[],\n update: TokenInfo[]\n): TokenListDiff {\n const indexedBase = base.reduce<{\n [chainId: number]: { [address: string]: TokenInfo };\n }>((memo, tokenInfo) => {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n\n const newListUpdates = update.reduce<{\n added: TokenInfo[];\n changed: {\n [chainId: number]: {\n [address: string]: TokenInfoChanges;\n };\n };\n index: {\n [chainId: number]: {\n [address: string]: true;\n };\n };\n }>(\n (memo, tokenInfo) => {\n const baseToken = indexedBase[tokenInfo.chainId]?.[tokenInfo.address];\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n const changes: TokenInfoChanges = Object.keys(tokenInfo)\n .filter(\n (s): s is TokenInfoChangeKey => s !== 'address' && s !== 'chainId'\n )\n .filter(s => {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n memo.index[tokenInfo.chainId] = {\n [tokenInfo.address]: true,\n };\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n },\n { added: [], changed: {}, index: {} }\n );\n\n const removed = base.reduce<TokenInfo[]>((list, curr) => {\n if (\n !newListUpdates.index[curr.chainId] ||\n !newListUpdates.index[curr.chainId][curr.address]\n ) {\n list.push(curr);\n }\n return list;\n }, []);\n\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed,\n };\n}\n","import { Version } from './types';\n\n/**\n * Comparator function that allows sorting version from lowest to highest\n * @param versionA version A to compare\n * @param versionB version B to compare\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\n */\nexport function versionComparator(\n versionA: Version,\n versionB: Version\n): -1 | 0 | 1 {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n","import { AbiVersion, YODL_ROUTER_ABIS } from './abis';\nimport chainlist from './chainlist-v1.json';\nimport CurveRouters from './curve.json';\nimport fiatCurrencies from './fiatCurrencies.json';\nimport priceFeeds from './pricefeeds.json';\nimport { routerlist } from './routerlist-v1';\nimport featuredTokenlist from './tokenlist-featured.json';\nimport generatedTokenlist from './tokenlist-generated.json';\nimport { ChainInfo, RouterInfo, TokenInfo } from './types';\n\nexport * from './abis';\nexport * from './diffTokenLists';\nexport * from './getVersionUpgrade';\nexport * from './isVersionUpdate';\nexport * from './minVersionBump';\nexport * from './nextVersion';\nexport * from './types';\nexport * from './versionComparator';\n\nexport const tokenlist = featuredTokenlist.tokens.concat(\n //@ts-ignore\n generatedTokenlist.tokens\n) as TokenInfo[];\n\nexport function getCurveRouterAddress(chainId: number): string {\n const curveRouter = CurveRouters.find(router => router.chainId == chainId);\n if (curveRouter == undefined) {\n throw new Error(`Unable to find CurveRouterNG for chainId ${chainId}`);\n }\n return curveRouter.address;\n}\n\nexport function getChains(): ChainInfo[] {\n return chainlist.chains;\n}\n\nexport function getChain(chainId: number): ChainInfo {\n return chainlist.chains.find((needle: any) => {\n return needle.chainId === chainId;\n }) as ChainInfo;\n}\n\nexport function getTokenByAddress(\n tokenAddress: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (tokenlist.find((token: any) => {\n return (\n token.address.toLowerCase() === tokenAddress.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getPriceFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId);\n}\n\nexport function getTokenFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId && f.type === 'crypto');\n}\n\nexport function getFiatFeeds(chainId: number) {\n return priceFeeds.filter(f => f.chainId === chainId && f.type === 'fiat');\n}\n\nexport function getFiatCurrency(code: string) {\n return fiatCurrencies.find(c => c.code.toLowerCase() === code.toLowerCase());\n}\n\nexport function getFiatCurrencies() {\n return fiatCurrencies;\n}\n\nexport function getPriceFeed(\n chainId: number,\n baseSymbol: string,\n quoteSymbol?: string\n) {\n const _quoteSymbol = quoteSymbol ? quoteSymbol : 'USD';\n const feed = priceFeeds.find(\n f =>\n f.input?.toLowerCase() === baseSymbol.toLowerCase() &&\n f.output === _quoteSymbol &&\n f.chainId === chainId\n );\n if (feed) {\n return feed;\n } else {\n // feed not found, find any feed that matches the base symbol\n return priceFeeds.find(\n f =>\n f.input?.toLowerCase() === baseSymbol.toLowerCase() &&\n f.chainId === chainId\n );\n }\n}\n\nexport function getFeaturedTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n return (\n (featuredTokenlist.tokens.find((token: any) => {\n return (\n token.symbol.toLowerCase() === tokenSymbol.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo) ?? null\n );\n}\n\nexport function getTokenBySymbol(\n tokenSymbol: string,\n chainId?: number\n): TokenInfo | null {\n const tokens = tokenlist.filter((token: any) => {\n return (\n token.symbol.toLowerCase() === tokenSymbol.toLowerCase() &&\n (!chainId || token.chainId === chainId)\n );\n }) as TokenInfo[];\n\n if (chainId && tokens && tokens.length > 1) {\n throw new Error(\n `Duplicate tokens found for symbol ${tokenSymbol} on chain ${chainId}:\\n` +\n tokens.map(t => ` - ${t.name} (${t.address})`).join('\\n')\n );\n }\n\n return tokens.length > 0 ? tokens[0] : null;\n}\n\nexport function getTokens(chainId?: number): TokenInfo[] {\n return chainId\n ? (tokenlist.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as TokenInfo[])\n : (tokenlist as TokenInfo[]);\n}\n\nexport function getRouters(chainId: number): RouterInfo[] {\n return routerlist.routers.filter((needle: any) => {\n return needle.chainId === chainId;\n }) as RouterInfo[];\n}\n\nexport function getRouter(\n chainId: number,\n version: string\n): RouterInfo | undefined {\n return routerlist.routers.find((needle: any) => {\n return needle.chainId === chainId && needle.version === version;\n });\n}\n\nexport function getRouterByAddress(\n address: string,\n chainId?: number\n): RouterInfo | undefined {\n const findByAddress = (router: RouterInfo) =>\n router.address.toLowerCase() === address.toLowerCase();\n\n const findByAddressAndChainId = (router: RouterInfo) =>\n router.address.toLowerCase() === address.toLowerCase() &&\n router.chainId == chainId;\n\n const filter = chainId ? findByAddressAndChainId : findByAddress;\n\n const routerInfo = routerlist.routers.find(filter);\n return routerInfo;\n}\n\nexport function getLatestRouter(chainId: number): RouterInfo {\n const sorted = getRouters(chainId).sort((a, b) => {\n return Date.parse(a.timestamp) - Date.parse(b.timestamp);\n });\n return sorted[sorted.length - 1];\n}\n\nexport function getRouterAbi(version: AbiVersion) {\n return YODL_ROUTER_ABIS[version];\n}\n\nexport function getShortNames(): string[] {\n return chainlist.chains.map(chain => chain.shortName);\n}\n\nexport function getNativeToken(chainId: number): string {\n return chainlist.chains.find(chain => chain.chainId === chainId)\n ?.nativeTokenName!;\n}\n\nexport function getNativeWrappedToken(chainId: number): TokenInfo {\n const nativeTokens = featuredTokenlist.tokens.filter(\n t =>\n t.chainId === chainId &&\n t.tags.map(tag => tag.toLowerCase()).includes('wrapped') &&\n t.tags.map(tag => tag.toLowerCase()).includes('native token')\n ) as TokenInfo[];\n if (nativeTokens.length > 1) {\n throw new Error(\n `Found more than one native wrapped token for chain ${chainId}`\n );\n } else if (nativeTokens.length < 1) {\n throw new Error(`No native wrapped token found for chain ${chainId}`);\n }\n return nativeTokens[0];\n}\n","import { versionComparator } from './versionComparator';\nimport { Version } from './types';\n\n/**\n * Returns true if versionB is an update over versionA\n */\nexport function isVersionUpdate(base: Version, update: Version): boolean {\n return versionComparator(base, update) < 0;\n}\n","import { diffTokenLists } from './diffTokenLists';\nimport { VersionUpgrade } from './getVersionUpgrade';\nimport { TokenInfo } from './types';\n\n/**\n * Returns the minimum version bump for the given list\n * @param baseList the base list of tokens\n * @param updatedList the updated list of tokens\n */\nexport function minVersionBump(\n baseList: TokenInfo[],\n updatedList: TokenInfo[]\n): VersionUpgrade {\n const diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n","import { VersionUpgrade } from './getVersionUpgrade';\nimport { Version } from './types';\n\n/**\n * Returns the next version of the list given a base version and the upgrade type\n * @param base current version\n * @param bump the upgrade type\n */\nexport function nextVersion(base: Version, bump: VersionUpgrade): Version {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return { major: base.major + 1, minor: 0, patch: 0 };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0,\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1,\n };\n }\n}\n"],"names":["VersionUpgrade","TokenListTagNames","yodlRouterAbiV03","inputs","internalType","name","type","stateMutability","anonymous","indexed","outputs","components","YODL_ROUTER_ABIS","test","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","routerlist","logoUri","keywords","version","major","minor","patch","routers","chainId","address","timestamp","fee","diffTokenLists","base","update","indexedBase","reduce","memo","tokenInfo","newListUpdates","baseToken","_indexedBase$tokenInf","changes","Object","keys","filter","s","a","b","Array","isArray","every","el","i","length","changed","added","push","index","removed","list","curr","versionComparator","versionA","versionB","tokenlist","featuredTokenlist","tokens","concat","generatedTokenlist","getRouters","needle","chainlist","chains","find","curveRouter","CurveRouters","router","undefined","Error","tokenSymbol","token","symbol","toLowerCase","fiatCurrencies","code","c","priceFeeds","f","sorted","sort","Date","parse","chain","_chainlist$chains$fin","nativeTokenName","nativeTokens","t","tags","map","tag","includes","baseSymbol","quoteSymbol","_quoteSymbol","input","output","shortName","tokenAddress","join","MAJOR","NONE","MINOR","PATCH","baseList","updatedList","diff","bump"],"mappings":"wEAKYA,ECAAC,ECLCC,EAAmB,CAC9B,CACEC,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,sBACNC,KAAM,YAGVC,gBAAiB,aACjBD,KAAM,eAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,UAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,WAGVD,KAAM,UACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,gBACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,uBACNC,KAAM,SAER,CACEH,OAAQ,GACRE,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,YAGVD,KAAM,QACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,OACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,0BACNC,KAAM,SAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,SAGVF,aAAc,sCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,YAGV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,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,UACNC,KAAM,SAER,CACEH,OAAQ,CACN,CACEC,aAAc,YACdC,KAAM,cACNC,KAAM,aAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,QACNC,KAAM,WAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,WAER,CACEF,aAAc,YACdC,KAAM,cACNC,KAAM,aAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,oBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,OACdC,KAAM,GACNC,KAAM,SAGVC,gBAAiB,aACjBD,KAAM,aD5HRS,GEzC8B,CAC9B,CACEZ,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,sBACNC,KAAM,YAGVC,gBAAiB,aACjBD,KAAM,eAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,eACNC,KAAM,WAGVD,KAAM,UACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,gBACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,uBACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,UACNC,KAAM,SAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,aACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,wBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,iBACNC,KAAM,cAER,CACEF,aAAc,YACdC,KAAM,SACNC,KAAM,cAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,QACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,SAGVF,aAAc,sCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,OACdC,KAAM,GACNC,KAAM,SAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,QAER,CACEF,aAAc,6BACdC,KAAM,WACNC,KAAM,UAGVF,aAAc,wCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,iBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,YAGVD,KAAM,QACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,uBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,UACNK,QAAS,CACP,CACEN,aAAc,SACdC,KAAM,GACNC,KAAM,WAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,qBACNK,QAAS,CACP,CACEN,aAAc,kBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEC,gBAAiB,UACjBD,KAAM,YF5eRU,GAAOd,EACPe,GG3C8B,CAC9B,CACEd,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,iBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,eACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,sBACNC,KAAM,YAGVC,gBAAiB,aACjBD,KAAM,eAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,aACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,UAER,CACEG,SAAS,EACTL,aAAc,SACdC,KAAM,gBACNC,KAAM,WAGVD,KAAM,UACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,gBACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,uBACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,OACNC,KAAM,YAGVD,KAAM,OACNC,KAAM,SAER,CACEE,WAAW,EACXL,OAAQ,CACN,CACEM,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEG,SAAS,EACTL,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,0BACNC,KAAM,SAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,aACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,wBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,YAGVD,KAAM,eACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,iBACNC,KAAM,cAER,CACEF,aAAc,YACdC,KAAM,SACNC,KAAM,cAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,cACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,QACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,QACNC,KAAM,YAGVD,KAAM,QACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,WACNC,KAAM,YAGVD,KAAM,oBACNK,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,uBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,UACNK,QAAS,CACP,CACEN,aAAc,SACdC,KAAM,GACNC,KAAM,WAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,GACRE,KAAM,qBACNK,QAAS,CACP,CACEN,aAAc,kBACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,QAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVF,aAAc,sCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEC,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,OACdC,KAAM,GACNC,KAAM,SAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,kBACNC,KAAM,QAER,CACEF,aAAc,6BACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,YAGVF,aAAc,wCACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEC,gBAAiB,UACjBD,K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CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,aACNC,KAAM,cAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mC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,KAAM,GACNC,KAAM,YAGVC,gBAAiB,OACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,QACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,+CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,gBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,OACNC,KAAM,SAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,kCACdC,KAAM,WACNC,KAAM,SAER,CACEF,aAAc,UACdC,KAAM,KACNC,KAAM,WAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,UACNC,KAAM,YAGVF,aAAc,mCACdC,KAAM,WACNC,KAAM,YAGVF,aAAc,6CACdC,KAAM,SACNC,KAAM,UAGVD,KAAM,kBACNK,QAAS,CACP,CACEN,aAAc,UACdC,KAAM,GACNC,KAAM,YAGVC,gBAAiB,UACjBD,KAAM,YAER,CACEC,gBAAiB,UACjBD,KAAM,WAER,CACEH,OAAQ,CACN,CACEQ,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,YACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,OACNC,KAAM,WAER,CACEF,aAAc,aACdC,KAAM,QACNC,KAAM,cAER,CACEF,aAAc,gBACdC,KAAM,aACNC,KAAM,iBAER,CACEF,aAAc,aACdC,KAAM,mBACNC,KAAM,cAER,CACEK,WAAY,CACV,CACEP,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,OACdC,KAAM,WACNC,KAAM,QAER,CACEF,aAAc,SACdC,KAAM,WACNC,KAAM,UAER,CACEF,aAAc,UACdC,KAAM,SACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,WACNC,KAAM,WAER,CACEF,aAAc,QACdC,KAAM,YACNC,KAAM,UAGVF,aAAc,yCACdC,KAAM,aACNC,KAAM,YAER,CACEF,aAAc,UACdC,KAAM,mBACNC,KAAM,WAER,CACEF,aAAc,UACdC,KAAM,cACNC,KAAM,WAER,CACEF,aAAc,UACdC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"}